When DD had windy phases i used to try to feed her half sitting up by sitting with my legs crossed and her "in the basket" facing me and leaned against my thigh so she could reach my boob easily (i had giant boobs then though, putting a cushion under him might make it easier to reach if yours are normal-sized). Also i winded her whenever her latch came loose (instead of re-latching right away) and i sat with her laid upright on her tummy on my chest for about 20 minutes after each feed. Sometimes a lot of foremilk (the thinner stuff they get in a rush when you get let-down) can make them a bit windier (though your littly is gaining so well it sems like he's getting PLENTY of cream ) but you can easily avoid that by, after they come of one boob, instead of offering the other right away, wind them and put them back where they were for another suck of hindmilk. If they come off again or cry in frustration you can always switch sides but often my DD liked to have her big feed then a short break/wind then back on the same side for "dessert" of the creamier stuff, and only really needed both boobs one after the other a few times a day. Experiment and see what your DS likes - there's no "mistakes" with BFing, it's all just happy experimentation until mum and bubs are both happy.

I would also say that:
a) the sleep deprivation and desperation you're suffering are completely normal and probably 90% of mums get them (i know i did!) for the first few months,
b) if you possibly can, get some good day-naps while he is sleeping and, like Barb suggests, maybe try waking him a bit more often in the afternoon/evening so he is nice and full at sleepy-time and not waking poor mum to feed so often.
c) to quote the wonderful Bathsheba, this too will pass. Looking back it feels like i blinked and now i have a giant toddler. Time flies. Hang in there.

Bx