From the way the question is phrased, I would believe the B-field is oriented in the "up" direction; this is because in general the energy of a magnetic dipole in a magnetic field is:
[tex]-\mu \cdot B[/tex]
so the dipole will want to align with the field to get to the lowest energy. In this case, lower energy is achieved if B is pointing "up" rather than "down".
This much I know, the rest I'm not 100% sure, but I think the following would work:
Suppose we have N such spins, then we have [tex]N = N\uparrow - N\downarrow[/tex]
Let [tex]2 S = N\uparrow - N\downarrow[/tex] be the spin difference. With this we can solve for
[tex]N\uparrow = S + \frac{N}{2}[/tex]
and get
[tex]\frac{N\uparrow}{N} = \frac{S}{N} + \frac{1}{2}[/tex]
Taking the average:
[tex]\frac{\left\langle N\uparrow \right\rangle}{N} = \frac{\left\langle S \right\rangle}{N} + \frac{1}{2}[/tex]
We would like this ratio to be 90%.
For one single magnet, the partition function is given by
[tex]Z_{1} = 2 cosh (\beta\mu B)[/tex].
where [tex]\beta = \frac{1}{k_b T}[/tex]
For N such magnets, our partition function will be
[tex]Z = \left(Z_{1}\right)^{N}[/tex]
The average energy is given by:
[tex]\left\langle E \right\rangle = -\frac{1}{Z}\frac{\partial Z}{\partial\beta}[/tex]
But we also know that [tex]\left\langle E \right\rangle = - \mu B \left\langle S \right\rangle[/tex]
so now we can solve for the temperature "beta" at which our desired ratio is reached.