Hi J. - You certainly have received a wide range of opinions about whether your son's behavior is worrisome, which it sounds like is more your question than what to do about the poor puppy. That's good, because I really don't have any great suggestion about what to do - but if you come up with a solution, please let me know (LOL!) since I am experiencing something similar with my 3-year-old son's behavior toward 1 of our 2 cats (he occasionally likes to scare the cat) and toward my 5-month-old son (he occasionally likes to pick up one of the baby's soft toys and throw it in the direction of the baby - not hard, but not exactly gently either if there is such a thing!).
As for your main concern about whether your son's behavior is normal, I think you hit the nail on the head: "for a boy his age." Considering his gender and the fact that he is only 3, I wouldn't be concerned unless your son is exhibiting other behaviors consistently pointing toward his being violent or malicious. You didn't mention anything like that though, so my guess is that he is a perfectly normal little boy who is as likely to do something shocking to the poor dog (because, as Ella P. wrote about her daughter and their cats, he is "just amused by their reaction") as he is to hug and kiss you and be the sweetest, most loving child in the world.
My oldest, a now-5-year-old girl (is your 5-year-old also a girl?), has never done anything aggressive or mean to either of our cats or her two younger brothers as babies. I think boys - or at least some of them like yours and mine - are just "wired" differently. Plus, at only 3 years old, they seem very curious about, and entertained by, the reactions of both living and inanimate things - which I'm sure is why, much to my chagrin, my son likes to (1) scare 1 of our 2 cats (that one visibly reacts by nervously scurrying away, which amuses my son, whereas the other cat, who is much more laid-back, stays put and barely flinches), (2) dump his food or milk on the floor; and (3) throw a toy in the direction of the baby. Here's a new one - yesterday when I was teaching my daughter to ride her bike on the driveway without training wheels, my son deliberately steered his bike into hers and knocked them both over - fortunately, neither of them was hurt, but his explanation, which I absolutely believe, was that he "just wanted to see what would happen."
As Toni S. wrote, "I don't think your son is doing it to be cruel. I think he's doing it to be, well, three!" I couldn't have said it better myself. :)
Don't worry, J., as your son gets older, I'm sure he'll outgrow his curiosity about, and fascination with, the dog's reaction, and the hitting will stop. Obviously, though, do whatever you can in the meantime to deter/prevent the hitting, but don't beat yourself up over it or freak out about your very "normal" little 3-year-old son.
Hugs,
L.