Headbutt is taught to your Pokemon by a person in the Ilex Forest in Johto.
Sorry, Weedle cannot learn Headbutt at all.
I don't know all of the Pokemon that can learn Headbutt, but I know that Cubone can learn it.
Many Pokemon can at the beginning if you choose totodile it can learn headbutt.
Slowbro can use Zen Headbutt.
Basculin learns Headbutt at level 7.
The Move Tutor can teach Furret Headbutt.
it learns zen headbutt at level 40
bagon learns zen headbutt at lv.37
I believe Cranidos learn Zen HeadButt at Lv.33. However, he learns Head Smash at Lv.43, 10 levels higher than it learns Zen HeadButt.
You go back to Ilex Forest and go to the dude that teaches Headbutt and make one of your Pokemon learn it again.
i know 2 of them zigzagoon and linoon
headbutt, drozzy, and sleep