Here is a possible idea of how to get all the needed HM's onto one pokemon (requires cinnabar surfing glith):
1. Do the Old Man trick
2. Fly (or Teleport) to Cinnabar Island, and use Surf.
3. If you keep a space in your name, you can catch a level 0 'M. Find one and catch it.
4. Now here's where it gets good. Teach 'M both Cut and Fly. Then give it a Rare Candy so that it grows one level. Upon growing one level, it evolves into Kangaskhan. Now you can teach it both Surf and Strength.
5. Congragulations. You now have a total HM user other than Mew.
Quick Edit: Here are some other things to note about 'M:
'M has a base attack stat higher than any Pokemon (even Dragonite, 136 to be exact)
'M starts out with Sky Attack, a whopping base 140 power attack
'M's speed is subpar (a mere 29). You'd need Carbos and X-Speed if you planned on keeping it as is.
If 'M's level exceeds 137, it also gets a nice Pound attack in its arsenel.
Check various sites for TM compatability.