If CO2 is nonpolar how come much more dissolves in water than O2?
Taken from my answer to your original question 

There are a couple of reasons why $\ce{CO2}$ is more soluble in water than $\ce{O2}$.  Because the two $\ce{C=O}$ bonds in $\ce{CO2}$ are polarized (whereas in $\ce{O2}$ the bond is not polarized) it makes it easier for the polar water molecule to solvate it and to form hydrogen bonds.  Both of these factors will stabilize a $\ce{CO2}$ molecule more than an $\ce{O2}$ molecule in water; stabilization translates into greater solubility.  Another factor enhancing the solubility of $\ce{CO2}$ in water is the fact that $\ce{CO2}$ reacts with water to set up an equilibrium with carbonic acid.
$$\ce{CO2(aq) + H2O &lt;=&gt; H2CO3(aq)}$$
This reaction will also enhance $\ce{CO2}$'s solubility in water compared to oxygen which does not react with water.