My dog's a bit of a bed hog.

All dogs like to sleep on the bed with the rest of their "pack" (you). That doesn't mean you need to allow it. You can easily get him to sleep at the foot of the bed or on the floor by making it uncomfortable for him to sleep elsewhere. Kick him off (literally, with your feet, firmly but gently) if he's somewhere you don't want him. It works best if he thinks it's his idea to sleep elsewhere, otherwise he'll whine and fuss.