I flew to Montreal with air canada earlier this year, found it very squashed (though I am 5'11) and would recommend own seat for him! I agree that he is probably unlikely to sleep. It will be daylight, bright, noisy and it's not like a night flight where there will be a quiet time. There is a bit of space near the loos, for the emergency exit, and quite a few teens sort of congregated round there a bit.
We did long haul with the dts once when they were that age, I remember lots of crayons, stickers, cars and food. Actually we flew with Air canada that time too (though changed in Toronto for florida) and it was a nightmare, and we were all split up. I'd really book the extra seat and reserve seats early.
At that age I always booked a seat for DD and that was just for short flights. I just found they take up so much room at that age that unless you have a spare seat it is impossible to even eat and drink yourself.
My friend flew with her DS at that age and he spent most of his time exploring the plane.
Is there any way at all you could afford to get him his own seat? or request a front row seat and a sky cot? I just flew with DS (23 months) and it was hell on earth with him on my lap, thankfully the stewardess took pity on me and moved us to a row of empty seats so he could have his own seat.
Other than that, lots of snacks, wipes, load up a phone/ipad/tablet with videos, and wrap up some small toys as another poster suggested.
Oh, and don't bank on him sleeping. With DD1 our return flight was a night-time one, and despite her being a generally affable and amenable child who was great at sleeping, she refused to sleep on the plane, screamed most of the way and the whole thing was a nightmare... so we're doing daytime both ways this time. However, given your flight schedule you may not have quite so many passengers trying to get a full night's sleep around you as we did!
We did Heathrow Toronto with DD1 when she was 23months, and tomorrow we do the same journey again with DD2, who's just 22 months. However, we deliberately booked a seat for her because I couldn't bear the thought of having her on a lap for 7 hours - they are such fidget bums at this age. We have packed some 'secret surprise' toys (crayons, stickers etc.) and some small non-perishable snacks, to pull out of the carry on bags and try to break the boredom at critical points, but do keep hidden from his view so that you don't just get pestered all the way. As far as I can remember with DD1 at this age (six years ago so it's a bit hazy!) there was a lot of walking up and down the aisles saying hello to sympathetic grown-ups and other children. And I guess with your DS not having his own seat this will be the default option for you! Good luck!
Will be travelling to Montreal from Heathrow at the end of August with our DS who will be 21 months old. Has anyone travelled with them and can anyone pass on any tips to make it more bearable with a very active toddler?! He will be sat on our lap. The flight is around 3.30pm and lands around 10.30pm (our time) so am hoping he will sleep for some of it.