Why not just solve all this and stick to buying your own drinks? When I go out with my friends we all go to the bar together and get our own drinks; occasionally we'll deal in 'I'll get yours this time, you get my next one' but generally keeping money seperate solves a lot of arguments the day after!
We used to all take turns to buy rounds, but had a friend who would buy herself a coke on her round and singles for everyone else, and then when it was someone else's round ask for a double JD! By keeping our money seperate now everyone is happy and no one is upset by a confrontation.
Next time you go out just walk straight up to the bar, keeping him with you, order your drink, and when you've got it and paid ask him what he's going to get (making it obvious you mean for himself..) If he wants you to pay just laugh it off, but don't give in! If he has no money at all on him buy him ONE coke and tell him next time he'll have to remember his wallet or go thirsty.