How does MIMO increase data rate?
Space Division Multiplexing sounds like snake-oil, but it's real. It's a way to push several independent channels of data over a shared medium.
If you have multiple well-isolated coaxial cables, then you would be right to insist that this was in fact a totally obvious way to move signals, and that there are in fact multiple physical channels available, one signal per channel.
If the channels are not well isolated however, say four unscreened twisted pairs in a common jacket (ethernet), then you need to start thinking about crosstalk between them. This may need some channel coding to protect against errors induced between the channels. This is insignificant at 10Mbit/s, but needed at 1Gbit/s.
The extreme of channels not well isolated from each other is the airspace between a transmitter (Tx) and a receiver (Rx). You would be forgiven for thinking that even if you had several Tx antennae and several for Rx, you would still only have one usable channel between Tx and Rx.
If the antennae are far enough apart, a quarter wavelength is sufficient, and if they are in a multipath environment, then each sees a different transmission path. Sometimes it's slightly different, sometimes it's very different, depending on where the filing cabinets and buildings are along the RF path. Consider our ethernet example, and the transmission space between the sockets. Each of the four physical channels mostly guides the EM waves along a diff pair of wires, this is what distinguishes the four channels. But it's only mostly, the four channels are not totally separate. Similarly, each RF path is influenced by the different arrangement of filing cabinets and buildings that each RF spatial channel sees.
Now these spatial channels cannot be accessed as easily as the four channels in an ethernet cable, they are not distinguishable enough for that. However, they can be accessed by beamforming, matrixing several logical channels of data with various phase shifts and weights to all the available antennae at the Tx, and then inverse matrixing them at the Rx. This is the magic of MIMO. With 4 antennae at each end, it's often possible to get 3x as much data as you could with a single antenna if the multipath is diverse enough, and usually 2x as much.
To put a bit of flesh on the bones, consider my three scenarios above. The four parallel coaxial cables connected from TX0 to RX0, TX1 to RX1 etc, would have a transmission or channel matrix C, and an equation of
[RX] = [C] * [TX]

        [ 1 0 0 0 ]
[RXx] = [ 0 1 0 0 ] * [TXx]
        [ 0 0 1 0 ]
        [ 0 0 0 1 ]

This is the unit matrix. It's trivially telling us that RX0 gets 100% of its power from TX0, and none from TX1, TX2 and TX3.
Now let's consider what happens with the unshielded ethernet cables
        [ 1 a b c ]
[RXx] = [ d 1 e f ] * [TXx]
        [ h m 1 n ]
        [ p q r 1 ]

C is no longer the unit matrix. a through to r are small numbers, and are complex. They represent crosstalk terms. RX0 for instance receives a signal TX0 + aTX1 +bTX2 +cTX3.
As a to r are small, we can regard them as reducing the SNR in each channel, without significantly hurting the integrity of the transmission.
We can restore the channels to their pristine response by effectively multiplying the channel with the inverse of C. C*inv(C) is the unit matrix if C is invertible. For a matrix that's close to unity, it certainly will be.
Finally, with MIMO, the channel matrix C looks more like
        [ a b c d ]
[RXx] = [ e f g h ] * [TXx]
        [ m n p q ]
        [ r s t u ]

where a through to u are all complex numbers.
We can only recover multiple separate channels if C is invertible. If we have a nice clean transmission environment, with a broadside array of both transmitters and receivers, all the terms will have a similar amplitude and phase, the determinant (a mathematical measure of the 'volume' of the matrix) of that matrix will be zero or near zero, and the inverse of C will not exist or be unusably noisy respectively. We will be left with a single channel.
If on the other hand, there is a strong reflector off to one side of the radio path, this will introduce a phase shift across the array, the terms will be distinct, the determinant will increase, and C can be partially inverted to pull two separate logical channels out of the mix.
With a channel that has enough multipath, and antennae far enough from each other to give distinct 'views' of the multipath, it is possible to pull up to N separate channels out of an NxN MIMO array.
The actual situation is more complicated, as the transmitter can't choose the radio environment, it has to use whatever is out there to best effect. The transmitter precodes the transmit streams to increase their orthogonality through the channel. The decoding matrix is constructed partly from an initial sounding (measurement) of the channel characteristics, and then may be kept up to date with feedback from the ongoing communication process.