Miss Manners said that you should only point out things that something can be done about. Like, spinach in the teeth, or lipstick on teeth. If someone has a horrible mole or thinning hair, you wouldn’t mention it.
Body odour is tricky because maybe he can do something and maybe he can’t. Have you ever discussed allergies or illnesses with him? Perhaps the subject can be brought up in some other context.
Are you that close of friends to really chat about bath products and bathing routines? If you’re not, do you know of someone he’s closer to that may be able to have that talk? If you walk around town together, make some excuse to go into a bath and body shop, like Lush or something. The conversation of showers and bath and soap wouldn’t be completely out of context, He may have a glandular and hormone problem.
Another problem is that sometimes clothes get impregnated with smells that don’t come out in some wash cycles, so he could have layers of stink in his shirts, making it much worse. Oxygenated washing powers with sodium percarbonate (made up of sodium carbonate and hydrogen peroxide) helps remove dirt and smells.
I couldn’t hang around someone that smelled bad all the time. My sense of smell is very sensitive and it would upset my stomach. I would really have to say something.