I learnt that you could use the key as a AES Key & encrypt the session with AES. Or you could use something like Elgamal encryption.
Elgamal encryption could be used directly with a static private key. The key type would be identical to the one used for (static or ephemeral) Diffie-Hellman. However, it would not be efficient both when it comes to space nor CPU.
So in practice, what is used more commonly? Is it something like AES or is it something like Elgamal?
AES is used much more. Elgamal is not used much because it has drawbacks even compared to e.g. RSA encryption using PKCS#1 or ECIES. One main issue is mapping the message to the cyclic group G, another is the required ciphertext expansion.
AES seems to be quite complicated as compared to Elgamal - Elgamal is just multiplication with the key modulo.
No, that's an oversimplification, please check the Wikipedia page on Elgamal encryption. Beware that these calculations are using huge numbers. Exponentiation and multiplication over such inmense values are not very fast. And, unfortunately, unlike DH, it's not easy to use Elgamal with Elliptic Curves - ECIES is more useful for encryption with Elliptic Curves.
So how come it provides security comparable to AES with all it's s-boxes, p-boxes etc? Is it because for every message a new session key is used with Elgamal?
No, Elgamal is not used with session keys at all. Session keys are symmetric keys derived from a shared secret. Elgamal is for asymmetric encryption. As mentioned, AES is now commonly used within authenticated encryption, which provides semantic security, something that is really important in a transport protocol.