The category of sheaves on a ringed space is a Grothendieck category. Let $Q$ denote an injective cogenerator. We write $hom$ for internal and $Hom$ for external hom.
Let $F^+:=hom(F,Q)$. Then for any sheaf $F$ the sheaf $F^+$ is pure injective. This follows just from the adjunction $\otimes \dashv \hom$ and the fact that $Q$ is injective.
Recall that a short exact sequence $0\rightarrow A\rightarrow B\rightarrow C\rightarrow 0$ is called pure if it stays exact after taking the tensor product with any element. We also just say that $A\rightarrow B$ is a pure injection. A sheaf is called pure injective if it is injective for the family of pure injections.
Next we have to see that $F^+$ is cotorsion for any $F$.
Lemma Pure injective modules are cotorsion
Proof Let $M$ be a pure injective sheaf, $F$ a flat sheaf and $0\rightarrow M\rightarrow E\rightarrow F\rightarrow 0$ be an extension. Apply $Hom(-,M)$ to find a splitting $E\rightarrow M$. Hence the extension is trivial and we see that $Ext^1(F,M)=0$
Now we can finally show the final result
Proposition $(\mathcal{F},\mathcal{F}^\perp)$ is a cotorsion pair
Proof Let $F\in {}^\perp(\mathcal{F}^\perp)$ and $M$ be any sheaf. It is $Ext^1(F,M^+)=0$ by assumption. But we also have $Ext^1(F,hom(M,Q))=Hom(Tor_1(F,M),Q)=0$. This uses that $Q$ is injective. Since $Q$ is also a cogenerator we can conclude $Tor_1(F,M)=0$, hence $F$ is flat as desired.