A lot of the timing issues he is having is due to his arm action. He takes the ball out of the glove a bit too early and then he stiffens his throwing arm and pushes it straight back toward second base. He needs to have a looser, more whip-like arm action. Here’s the way I explain the arms:
As the front knee raises, the hands (with hand/ball in glove) raise at the same time. This creates fluidity and starts the syncing up process.
As the knee lowers, the hands (together) lower - it’s like gently pushing down on a plunger or a large game button. Then the hands separate together as the front foot goes forward.
Instead of pushing the throwing hand straight back toward second base here, the forearms (both the ball hand and glove hand) should hang down somewhat loosely as the upper arms are raised toward
shoulder height. At this point, the glove-side upper arm should make a line straight to the target.
The rear elbow can also work back behind the back (toward third base in your son’s case) to get maximal stretch; the ball should actually be hidden from the batter’s view by moving it right behind his back hip/torso, and begin to move up toward the high cocked position, remaining hidden all the way up to the side and then back of his head.
If synced properly, the throwing (upper) arm should be at approximately 45 degrees (half-way between parallel to the ground and pointing straight up to the sky) when the foot just begins to touch down. Once the front foot is planted and the front leg is braced, the throwing arm should be in the high-cocked position. From there, your son does a good job - he gets excellent maximal external rotation (lay-back of the forearm).
Hope that makes sense to you! Good luck!