Hi N.,
I started laughing when I read your question - it must be something in the water, because my son does that to this day occasionally, and he's three. It's kind of goofy, but if people are getting hurt, you definitely need to do something. I think, maybe there's a tendency NOT to discipline for this behavior, because he's not doing it to be hurtful or menacing. He's just being goofy and having fun. He just needs to know that it's not good behavior, and there will be consequences because people are getting hurt. Try a one-minute time-out in an isolated place, and verbally communicate why he has to spend time by himself. You don't realize how much they understand at that age - my 14 month old daughter amazes me at her verbal comprehension, so you have to remember that when you discipline. They're not as innocent as we want to believe! Just communicate it calmly and gently, and remove him from the situation when he starts head butting. He'll get the picture, and although it may not go away completely, he'll learn that he can't do it when it hurts people. Hope this helps! Good luck!