I am playing the Ruby version, I have a question about where can forget a Pokemon's learnt HM.
You can delete moves from the Move Deleter. He is in Lilycove City right next to the department store.
A Pokemons learnt HM can be forgotten at the move deleters. The move deleter is located in lilycove city in a house just east of the department store. He will be alone in his house. Talk to him and he will delete any move, including HMs, for free.
There's always the Pokemon daycare. make sure the HM move is in the first move slot,then when the Pokemon,learns a new move,it will forget the HM move.