Sounds like the coach should not be coaching kids of that age-level. The way you describe his methods, they might be okay at a high-school/Juniors/college level, but not for kids who are 8 or 9 years old. When kids are that age they should be encouraged to try things out, ask questions, and not be afraid to make mistakes while learning the game. I had great coaches from age 9 on upward. Perhaps it was because they had played at high levels (almost all had played NCAA or minor pro), and knew that it is counter-productive to treat a 9 year old the same way you'd treat an 18 year old. Most of all, I remember that I had tons of fun, and I credit our coaches for that. The only time I had a coach who was a prick was in high-school. There were bag skates, yelling, the whole nine yards. But by then we were all 16-17 and it just rolled off our backs. Nobody took it personally.
Here is what I suggest. You mention that your kid is on a travel team. I assume that means there is a house league too? I would pull him off the travel team and have him play house league for a year or two before going back to travel, hopefully with a different coach in his new age-bracket. With reduced pressure in house league it might make him realize if he really likes the game, or not.
But I think the most important thing is what your kid wants to do. If he doesn't even want to play house-league because of his experience with this coach, it might be time to hang up the skates for a while. If he misses the game enough, he can always come back.