I have a 16 y/o, who has quite a few issues, it is hard to bond at that age. I find what works for us, is not so much of getting him to do stuff I want to do, but me showing interest in things he does and likes.
Shops - If he hangs at the shops he probably likes take away food. Could you maybe have Mother son dinner lunch dates at a takeaway store? I know it seems lame, but if it's what they like....Something like, "hey, do you want to come with me to Macca's this morning to eat breakfast?"
Can you take him shopping - Like to JB hifi, my son will try and shock me with "hard core bands CD's. So it then becomes a competition on who can find the rankest CD cover.
Getting him into cooking together at home, ask for his help in a good way, eg - "I know your brilliant at peeling potatoes, would you be able to come and give me a hand, as I really need help at the moment".
Does he play games, sit down with him and get him to explain to you how powerful he has made his character etc. Even show a fake interest in playing an easy game with you. A let him laugh at you when he see's how bad you are at it.
Cooking classes sound OK, but if he's hardley ever home, he might find it more of a chore, than a fun time bonding.
How about a quad bike ride (tour) together. If in your area. Or a high ropes type thing. Something like half a day.
hope this helps, Oh, what we found good was games of pool, we even bought a pool table to help. It's been great! You can get some second hand ones cheap from gumtree.