Antenna Array - Hundreds of elements forming thousands of beams - How?
If you control an array of 100 antennas and are able to control the phase (and ideally, amplitude) of the signal of each of them, you can produce beams in arbitrary directions. That really means that you can point in any direction.

Looking at this as receive beamformer. Let \$w_{\phi,i}, \, i = 1, \ldots 100\in\mathbb C\$ be the individual antenna weight to point the beam in direction \$\phi\$. \$x_i(t)\$ is the antenna $i$ receive signal. Then, the beamformed receive signal \$y_\phi(t)\$ is

$$y_\phi(t) = \sum\limits_{i=1}^{100} w_{\phi,i}\cdot x_i(t) = \mathbf w_\phi^T \mathbf x(t)\text, $$

if written as elegant vector product.

Now, obviously, you can do that for other angles, such as for angle \$\psi\$,

$$y_\psi(t) = \sum\limits_{i=1}^{100} w_{\psi,i}\cdot x_i(t) = \mathbf w_\psi^T \mathbf x(t)\text. $$

Putting these beamformed receive signals in a receive signal vector instantly yields the elegance of the beamforming matrix \$\mathbf W\$:

$$\begin{pmatrix}y_\phi(t) \\ y_\psi(t) \end{pmatrix} =
\begin{pmatrix}\mathbf w_\phi^T\mathbf x(t) \\ \mathbf w_\psi^T\mathbf x(t)\end{pmatrix}
= \begin{pmatrix}\mathbf w_\phi^T \\ \mathbf w_\psi^T \end{pmatrix} \mathbf x(t)= \mathbf W \mathbf x(t)$$

There's no restriction on the number of rows in \$\mathbf W\$, so you can have arbitrarily many received beams as you want. 

In transmit beamforming, the same applies. The only constraint there is that the sum of all the beamformed signal vectors needs to still be small enough to allow your transmitter to transmit them.