I once used peliper for waterfall, surf and fly. I have seen empoleon used for rock climb, surf, waterfall and rock smash (or something like that.) I have used a golem for rock climb, rock smash and dig. (Yes, I know that dig isn't an hm.) Linoone is also a great HM slave, and it has pickup.
Nowadays, all of my pokemon battle and have one or two HM's
i have a few questions about that ability, pickup - if you have 2 or more pokemon with that ability, do they all have a chance to pick up an item? and will pickup find items after any battle that generates EXP - so, including battles with cynthia, cheren, morimoto, trainers in the battle court and stadium in nimbasa, and even the elite 4 etc. as well as in the wild?
and agreed on linoone, he's not very useful competitively but he's a cool little pokemon nonetheless, and with pickup and the ability to learn a bunch of HMs too, he makes a great in-game pokemon to have with you;
anyway, i wanted to add a discovery i made, which isn't entirely about HMs, but it involves a pokemon that can carry a bunch of useful in-game moves, one of which used to be a HM, so it kind of counts - breloom! first the ex-HM; he can learn flash, which is virtually a HM in white and black, or perhaps should be, since i can recall at LEAST 2 caves which need flash; ok, you could probably find your way without flash, but that sentence requires the addendum 'eventually'. secondly, additionally, it can also be an excellent catcher; it learns spore, and can also learn false swipe!