Is there any way to remove HM moves from a Pokemon in the first generation games? This includes learning and overwriting the HM or using a move deleter.
As the first Generation has various Glitches which practically give you access to manipulating the Game Data, yes there certainly is a a way to do exactly what you want, but it is not very likely that you or another person will find the exact way to achieve this without any bad sideffects of messing with other Game Data.
So, the final answer is no, it is not very likely and not possible in the normal Game, but you can certainly try it on an Emulator or read up on it a little, there are loads of articles on that on the internet. Though I don't think it is worth the effort just to get another move, messing with the Game Data can certainly be a nice experience. So, have fun.
I tought my Mew (glitched) the attack "cut"...
...it seems impossible tot fix, but I found a solution, which worked very well for me.
You'll either need a piece of hardware called "gameshark" (when playing on a real Gameboy)
Or have the option to use cheats on your emulator.
Basically, you put the pokemon as first of your party andere then use
012172D1 if the HM move is in slot 1 012173D1 if the HM move is in slot 2 012174D1 if the HM move is in slot 3 012175D1 if the HM move is in slot 4
as the cheatcode, then save with the code active (you van disable the code afterwards) andere load the savegame.
You can in fact make a pokémon forget an HM move in gen 1. Only problem is that it is completely random because it abuses the daycare. The daycare can make your pokémon learn a new move regardless of you agreeing or not and, with a bit of luck, it just might overwrite the HM move.
EDIT: Nevermind, seems like the daycare won't accept HM pokémons. http://bulbapedia.bulbagarden.net/wiki/Pok%C3%A9mon_Day_Care
Also in Generation I, the Day-Care Man will not accept any Pokémon that knows an HM move.
Otherwise, if you want to do it with a certain level of control, you have to trade to a Gen 2 game, as Derrick Mashburn said in his answer, so you can use the move deleter.