You can get Headbutt in HeartGold and SoulSilver by going to Ilex Forest and Cutting your way through to the second section of the forest. Check the eastern section up here and you'll find a path to a chubby man facing a tree. He'll teach one of your Pokemon Headbutt. (You can also learn it naturally with some Pokemon, though I don't think any learn it as early as you'll find the guy in the forest.)
I don't know all of the Pokemon that can learn Headbutt, but I know that Cubone can learn it.
A man in Ilex forest will teach your Pokemon the move
Headbutt a tree in the Viridian Forest, you might also get a shroomish.
I've never tried, but I DON'T Think so. Why not try it? If not, there's a man in Ilex Forrest that will gladly teach your Pokemon 'headbutt'
Note: You need Headbutt.New Bark Town Headbutt Trees.CherryGrove City Headbutt Trees.search him on your pokedex and it will be red instead of green that means you need to headbutt a tree using headbutt.
There is a Move Tutor in Ilex Forest that teaches Headbutt.
talk to the guy in the pink suit and he gives you headbutt
I don't know all of the Pokemon that can learn Headbutt, but I know that Cubone can learn it.
Sorry, Weedle cannot learn Headbutt at all.
You teach a Pokemon headbutt, then go up to one of the large, triangle trees and press A.
A man in Ilex Forest
A man in Ilex forest will teach your Pokemon the move
No, sorry. There are some Pokemon that learn Headbutt by level-up, though.
there is a man in the Ilex Forest that will teach headbutt to as many Pokemon as you want
You go back to Ilex Forest and go to the dude that teaches Headbutt and make one of your Pokemon learn it again.
dunno about heartgold, but in soulsilver it is in that area of grass under the day care and you have to headbutt to get him too.
Headbutt a tree in the Viridian Forest, you might also get a shroomish.