General rule is if you see a problem, that problem is usually not the cause of the problem but the symptom. In this case his head going to first base side is partly caused by shoulder tilt. The tilt, which you can see, right shoulder is higher than left, is to get his arm up into his arm slot. That’s normal. What’s not normal is that he does pull off a bit, which is possibly a result of him pulling his glove side into his chest and glove blocking. By doing that he stalls his trunk rotation and has to continue that rotation by pulling his head to the side.
Think about it like this. Rotation happens by your body rotating around a stable, braced spine (and front leg in the case of pitchers). If you impede that rotation your body will use whatever means necessary to try and get the job done. In this case it’s the head. Think about starting a sprint in a base stealing position, proper mechanics for initiating your body’s rotation to the right at the beginning of a sprint is for your head to start the movement. That’s what is happening here. The body knows it needs to keep turning so it’s using the head to try and continue the rotation. I would work on properly clearing the glove side and folding the glove side elbow down into the hip, not pulling the glove into his body.
Here’s a drill that can help him find the feel for what a good glove side should be like. Note that you don’t have to throw weighted balls like they do. You can simply do this with a regular baseball as part of his warm up throws, we do it as our first 3 sets of 5 throws at beginning our throwing program, backing up incrementally, so that we’re patterning good movements from the start.
Also there’s an attached picture of Marcus Stroman with good head tilt. Although he’s a hair farther along in his delivery than your son it’s the same concept.