I understand for SU-MIMO Beamforming single layer maps to all antennas with phase shift applied to create beam. Also I understand in this case all beams will be carrying same signal (say s1). But in case of MU-MIMO how can s1 and s2 be transmitted from multiple antennas at the same time so that one of the resulting beam carries s1 and other carries s2?
The answer is simply orthogonalization of radio resources. For any given OFDM symbol, exactly one user will be allocated certain sub carriers. This allocation is dynamic and informed to the user in what is known as the DCI, in the downlink control channel. Each user will decode data only on the subcarriers on which it has a grant allocated by the base station.
So each user is assigned a unique set of subcarriers for each OFDM symbol, hence when multiple users are multiplexed you do not get interference from other users. Because you are allocated a "unique orthogonal resource". Now if the base station wants to send multiple streams to the same user, then this is done by precoding matrices. 3GPP defines unique precoding matrices, the user estimates the channel and tells the base station about a probable precoding matrix and it is upto the base station to make the final call on the precoding matrix and inform it to the user.
Note: to your notion of beamforming on this question,
Beam forming, here is not in the sense of steering a beam in the direction of the user. But, precoding to transmit the stream in a given direction in the "vector space sense", where the vector space is formed by the N dimensional receiver space formed by the receive antennas. It is not a sense of physical direction as in conventional beamforming, it is more of beamforming in the receiver signal/vector space.