This is actually a question that I'd be interested in too. The solution I think is a level script, similar to the one in the player's room in FireRed. It'd go like this:
movesprite2 0xPersonEventNumber 0xX-pos 0xY-pos
spritebehave 0xPersonEventNumber 0xBehaviourNumber
Behavior number is just what the person does (look down is 0x8 look around is 0x1...ect). This is for FireRed, though other gen III ROMs are likely similar if not the same.