please do not get a puppy unless your son has got past this. Puppies are not trained yet and have very sharp teeth, and so they are not really cute bundles.
I used to dogsit my cousin's dog. Huge golden retirever, but very calm and gentle. I had a friend whose daughter was terrified of dogs. In the summer, when the dog was with us, they came over. She stood in the door of the house and me and dog were in the garden. I did some things with the dog and talked to her about what I was doing. Some commands (sit, lie down etc). Showed her how he would wait when asked.
Then I played with the dog, threw the ball and he fetched it.
After a while, she threw the ball a couple of times. Slowly but surely she began to interact with the dog.
I actually think it helped that the dog was big. Didn't move quickly or run between your feet. And was quiet, no barking.
When he was running (after the ball) we talked about how dogs run but don't bump into trees or fences, so if you stand still and pretend to be a tree he will run round you, and we tried it.
It worked. She grew ot love that dog. A couple of years later we had a spaniel, very fast moving, but didn't jump up. She found that harder, because he was so wiggly and quick, but she got used to it, and we used same principles.
She is always a bit nervous around dogs, but not scared now.
There was also someone who came into school and talked to the kids about dog body language, what does an angry dog look like (ears, face, tail) and what does a playful dog look like. It gave her confidence to see that she could predict a bit more what a dog is doing.