just tell him straight, look, you stink, its offensive, if he doesnt do anything about it go and make a complaint to HR, they will take him aside and force him to sort it out, dont worry about it, hes not your mate, if hes not aware that he smells then you dropping hints about 'somebody' smelling wont make any difference, as his nose will be indifferent to it. Point it out, blatantly, stick up for yourself, you gotta work there, if he refuses to do anything about it even when aware and told by HR then just keep constantly telling him he smells, shame will make him either leave or clean up, just dont add any other insults in or you could get in trouble, they can do nothing about you pointing out his personal hygiene though if its as bad as you say.