Go to the forth gym!
It is attainable in poke mart after the 3 gym badge (i think)
go to the radio tower in Goldenrod city, team rocket will be there and you have to defeat them.
In one of the gyms. I don't know witch one.
After you have beaten her once for the gym badge, and once in a rematch, you will be able to trade her any Pokemon for a Steelix. (I don't know what level)
KANTO
You can't get a HM for that.
by beating the gym leader
beat falker with a senret lv100
Go to the forth gym!
You can find it at the town team rocket is defending
cinbar islnd
you have to get the cianwood gym badge and the olivine gym badge
it is bugsy the bug type leader
by beating the icicle gym leader. In mahogany town.
In Mahogany town right from Etrack city
blackthorn city