Spins don't exist only as spin-up or spin-down.
I make no apology for making this big and bold. It is so disappointing to see this misconception being propagated in so many textbooks.
Spin-up and spin-down are two of the infinite possible quantum states. In general, a spin-1/2 nucleus has a state
$$\psi = c_\alpha \psi_\alpha + c_\beta \psi_\beta$$
where $c_\alpha, c_\beta$ are complex numbers and $\psi_\alpha$ and $\psi_\beta$ represent the 'spin up' and 'spin down' states respectively. In order for the state to be 'physically sensible', we require that $|c_\alpha|^2 + |c_\beta|^2 = 1$.
A pure spin-up state would have $c_\alpha = 1$ and $c_\beta = 0$; and a pure spin-down state would have $c_\alpha = 0$ and $c_\beta = 1$.* However, there is no stipulation that these are the only possible values. It is perfectly sensible to have a linear combination, or a superposition, of spin-up and spin-down:
$$\psi = \frac{1}{\sqrt{2}} \psi_\alpha + \frac{1}{\sqrt{2}} \psi_\beta$$
It is easy to verify that $|c_\alpha|^2 + |c_\beta^2| = 1/2 + 1/2 = 1$, as required. This is a perfectly valid state for a spin-1/2 nucleus.
So, if we identify the two special states $\psi_\alpha$ and $\psi_\beta$ with "along the positive $z$-axis" and "along the negative $z$-axis" respectively, then it logically follows that all the other states can be identified with pointing in a different direction.
Formally, the way to do this is to calculate the expectation value of $x$-, $y$-, and $z$-angular momentum from each state.† I'll not go through the maths here, but essentially you will get three values out of this, often denoted $(I_x, I_y, I_z)$. Then you can plot this on what is known as the Bloch sphere. For example, if you calculate this for the spin-up state, you will get $(I_x, I_y, I_z) = (0, 0, 1)$,‡ which essentially points straight up along the $z$-axis. It follows, that different combinations of $c_\alpha$ and $c_\beta$ lead to different values of $I_x, I_y, I_z$ which in turn lead to different 'directions' on the Bloch sphere.
In general, you can convert freely between these two representations of the spin states: you can either use the $(c_\alpha, c_\beta)$ representation, or you can use the $(I_x, I_y, I_z)$ representation.§
NMR on one spin
If we start with a single spin pointing along the $+z$-axis, i.e. spin-up, then the effect of a 90° pulse would be to tilt it to somewhere in the $xy$-plane. It could be along the $x$-axis (in which case we'd have $I_x = 1$ and $I_y = I_z = 0$), or it could be along the $y$-axis, etc. etc. In general, such states are superpositions of $\psi_\alpha$ and $\psi_\beta$. The exact state you get depend on the phase of the pulse, which isn't super important for now.
Let's say, for argument's sake, that you get a state along the $x$-axis. It turns out that this state is not actually 'stable'; if you leave it to be, it will evolve in time. How does it evolve? It turns out that if you work through the mathematics of time-dependent quantum mechanics, this state rotates about the $z$-axis with a characteristic frequency $\omega$. We can express this in terms of the coefficients:
$$\begin{pmatrix}I_x \\ I_y \\ I_z \end{pmatrix} = \begin{pmatrix}\cos(\omega t) \\ \sin(\omega t) \\ 0 \end{pmatrix}$$
You can verify that if we plug in $t = 0$, we get back $(I_x, I_y, I_z) = (1, 0, 0)$, which corresponds to "immediately after the pulse".
Fundamentally, NMR is based on detecting these oscillations. The electronics are set up to detect terms which behave like $\cos(\omega t)$ as a function of time; Fourier transformation of these terms allows us to extract the frequencies $\omega$ and hence plot an NMR spectrum.
Now here comes the issue when discussing NMR on single spins: we can't actually continually measure $I_x$ or $I_y$ on a single spin. This is not only technologically impossible, but also highly problematic considering that the act of quantum measurement leads to 'wavefunction collapse'.
This is the point at which we need to consider many spins, or macroscopic properties.
NMR on many spins
We now consider an ensemble of many (identical) spins. For example, we could have a sample of water, in which all of the $\ce{^1H}$ spins are identical.¶
Are all of the spins going to point up? Well, if the energy difference between spin-up and spin-down was large enough, then maybe they would. However, NMR energy differences are extremely tiny! As a result, there isn't enough bias towards the lower-energy states. What you get is that all the spins point in essentially random directions, with a slight overall bias towards the $+z$-axis. We call this a polarisation, in that the spins generally lean towards the $+z$-axis.
The 90° pulse acts on each of these spins differently. If one of those spins happens to start off along the $+z$-axis, it will be tilted into the $xy$-plane correctly. If one of the spins happens to already be in the $xy$-plane, then it may end up somewhere else entirely.
What can be shown (using a formalism called density matrices) is that the overall polarisation, which starts off as $+z$, mimics the single-spins case. That is to say, the 90° pulse brings the net polarisation into the $xy$-plane, after which it starts evolving (or precessing) at its characteristic frequency $\omega$. At this point we tend to call these "coherences" instead of "polarisations", which is a slightly complicated term to define properly, but essentially it revolves around the idea that: even though each individual spin is doing its own thing, collectively, they act in tandem to provide a net effect that can be detected.
If you have different types of spins, like in a more complicated organic molecule, then you would get have multiple types of polarisation which precess at different rates. Again, this can be Fourier transformed to extract the individual frequencies of each component.
Now, the fact that we are dealing with many spins helps us to avoid the traps of measurement previously mentioned. The first thing to note is that we have many spins, so the signal that we detect is likely to be rather bigger than just that from a single spin.# The second thing to note is that we no longer care about each individual spin's state: we're not measuring each spin's wavefunction individually, but rather we are measuring how the entire ensemble is biased or polarised. The net bias of the ensemble can be constructed in many ways; by measuring it, we don't actually enforce any requirement on the individual spin's wavefunctions. This means that we don't run into awkward issues with wavefunction collapse.
Further reading
The NMR books by Keeler (Understanding NMR Spectroscopy, 2nd ed., Wiley) and Levitt (Spin Dynamics, 2nd ed., Wiley) explain this more thoroughly than I can here.
Footnotes
* More precisely, one is equal to $0$ and the other is equal to some arbitrary complex number with magnitude $1$, which can be represented as $\mathrm{e}^{\mathrm{i}\theta}$ for any angle $\theta$.
† Note that the Heisenberg uncertainty principle (HUP) doesn't stop you from doing this. The HUP doesn't tell you anything about the actual expectation value itself, it only tells you about the uncertainties in them. For example, consider position and momentum: the HUP says that you cannot measure both simultaneously and with perfect accuracy. It doesn't say that you cannot measure these simultaneously, nor does it say that you cannot measure them at all: it is only the combination of simultaneously and perfect accuracy that is forbidden.
‡ There is a constant factor of $\hbar/2$ which I've neglected. It's not hugely important. The important part is that $I_x = I_y = 0$ and $I_z \neq 0$.
§ Going deeper, this is a result of a homomorphism between the SU(2) and SO(3) groups, which has quite a bit of significance in spin physics.
¶ Yes, technically, there's also going to be $\ce{H3O+}$ and $\ce{OH-}$.
# Because the energy gap is small, though, the net polarisation is still generally pretty small: NMR is considered an insensitive technique.