.... He turns his head in towards the centre while his body moves towards the side. ... So any advice on how to stop him doing this? It would be much appreciated.
What he is doing is 'popping" his shoulder to the outside - i.e. he is NOT straight.
Keep inside leg at the girth - he should bend around that leg. Outside rein should come out from the neck
and rider MUST keep contact on that rein to prevent shoulder from popping. At first you might need to keep enough contact that he is looking outside - when he does that you should have the shoulder - so at that point - without releasing the outside rein, bend your inside wrist by taking thumb
(which should be pointing straight up) and turning thumb to inside
Since you did NOT release the outside rein when you turned your thumb to the outside (i.e. if going around arena to the left you turn left thumb to point to the right) then you should retain the outside (right in example) shouldder while nose is now pointed slightly to the left (because of the wrist positio).
Since you don't want to keep thumb pointing to outside you must re-point it up in the air. BUT since horse will again try to pop shoulder you must use your inside leg at the girth to push horse into outside rein. This will keep "nose" pointed in correct (inside) direction while retaining correct shoulder position.
In other words inside leg to outside rein - which is always used to straighten the horse. The idea is to implement inside leg to outside rein a piece at a time to get horse straight - then maintain connection (inside leg to outside rein) to maintain the straightness.
You will probably have to do this
MANY times until horse starts straight on the inside to outside connection.