Mostly any pokemon.
top of the park
you get heracross or combees when you headbutt a tree
theres a guy in ixel forest and he will teach your Pokemon headbutt
a guy in the ilex forest
Use headbutt on a tree
you go to Ilex forest and find a man in there and he will give you headbutt and teach it to you Pokemon and now you could headbutt a tree
Look in Viridian forest and headbutt trees.
from a guy in the woods where you get the 2 farfech'd
Zen Headbutt is not a TM. It can be learned by leveling up, breeding, or by the Move Tutor.
Headbutt trees on route 38
it is in the forestTo use headbutt in Soul Silver you go in the forest where the little house is you go a secret way. Then at the end, there is a guy. Talk to him and your first Pokemon will learn headbutt! If you want to use it, go to a tree, press A then it will say, "Do you want to hit this tree?" say YES. Then a Pokemon will appear.
somtimes you may have to fight a Pokemon in the butt