One way to go about it is to play through Diamond, Pearl, or Platinum, beating the Elite Four and obtaining the National Dex, then going to Iron Island. You then go into the house, talk to Byron, and he'll give you the Metal Coat. Then, you can call a friend over to borrow their DS. Give one of your Pokemon the Metal Coat to hold, then trade it over to your HeartGold via Union Room. That's one way, though I believe there's another involving going through the S.S. Anne in Kanto and getting it from the captain.
Good luck to you in getting it.
pokeathlon
Chat with our AI personalities
Make it hold a Metal Coat and trade it. I recommend you to ask someone to trade Scyther with a Metal Coat to you.
You can't make the metal coat, however, you can obtain it as a drop from a boss pokemon.
the Pokemon that evolve with metal coat are steelix and scisor
he evolves with a metal coat when you trade him
Someone has to trade you an Onix while it's holding a Metal Coat.