im thinking it would be pretty easy using events and an event auto pathfinder like Forever Zer0's, you could use script conditions to achieve such, like this:
conditional branch: script: $game_
map.events[EVENT_ID].x < $game_player.x #if events x is lower than players x
conditional branch: $game_
map.events[EVENT_ID].x != $game_player.x -2
#use a script call to set the location to $game_player.x -2
branch end
branch end
obviously the conditional branches will need expanding to account for all directions and some x values and - values will be required to be changed depending on the direction but im guessing your smart enough to deal with that
you could use the move towards player command rather that using a path finding script but lets face it, the move towards player command is just stupid