This is an idea that hopefully is cost effective.
Why not try to take him to 3 or 4 coaching sessions with one teacher. They could all be in the space of two weeks. You may want to research to find a coach you feel will be good for your son.
Your assignment would be to go and watch the sessions and see what the coach works on with him and how he progresses.
Then you try to work with him on that for the next month or so. And every month to six weeks, you have your son do 1 coaching session with the same coach. And then you see how the coach progresses the work with your son and adapt what you work on with him based on that.
That way, you learn more of how to coach your son and he gets the advantage of having a session with a real coach every so often.
Starting with 3 or 4 sessions (it could be 2 sessions if you feel you see enough) will be an upfront expense, but it will help you see how the coach progresses the lessons based on what he sees your kid can do.
Also, this is a video about actual coaching. It is not about table tennis. But it is theory on coaching in a way that gets real trackable results.
It is worth watching this video a few times. Some of the info takes a while to sink in. The basics are that, a lot of the ways coaches in many sports coach is so that the player looks better and looks like they show improvement in practice. But that the improvement simply does not show up in game skills because the player is only training part of the skill sets that are needed.
Most TT coaches do exactly what these guys say you do not want to do. That is just the fact. But based on this video, you may want to add in some random drills that include some game skill techniques even if they are simple. Like:
1) a) Your son serves, b) you push long, c) your son attacks, d) you guys play out the point letting the play be random.
2) a) You serve, b) your son returns the serve however he thinks he should, c) you play out the point as above.
3) You feed multiball with the ball being always in a slightly different place, pace and spin without any of the balls being too different so that your son can adjust to each ball. (This would be analogous to the balls placed all over the putting green, or the shots being taken from different places on the basketball court in that video).
If your son has to adjust a little to each different ball, and if he is developing the skills of reading and planning, while developing the technique of his strokes, he will improve in real terms, at a faster rate. His skill retention will be higher. The training will translate into when he is playing matches because, in training, he is also having to adjust to the ball and make decisions on how to return them.
I know lots of people who train with a coach a lot. Get that kind of block training. Play someone who looks terrible. Get beat silly and still try to say they are better than the person who gave them the drubbing. My answer is, even if you think your technique is better, if they beat you, they have to be doing something better than you. And often that is that they are reading the game and deciding how to respond to each shot. So, reading and planning.
It is worth including some randomness into the training and help your son to learn some of how to adjust to the randomness of real game play.
BTW: I would also think about adding some real game play into your training of your son. Not too much. But enough so that you can see more of what he needs to work on. If the games are between you two, and you are trying to put the ball back so he can win or lose the points, you will both benefit from the information you glean during those games.