The easiest way would be to modify monster_get_battlesprite to return different sprites depending on whether the AMP ID is an enemy monster or not (right now it always returns the monster data mond_SPRITE_BATTLE column), player monsters would use a new mond_SPRITE_BATTLE_BACK sprite instead.
You can tell if an AMP ID is an enemy by checking if it's >= AMP_FIRST_ENEMY. If it's not, it's a player AMP ID. (If you're curious, AMP = Active Monster Party, the database of currently loaded monsters - player party, player boxes, and enemy party)
To add this new sprite data, you'd need to modify init_monster so that it takes three sprite arguments instead of two (currently it takes battle and map sprites, you'd want battle, battle_back and map), then update init_monsters (with an "s" at the end) so that it initializes the monsters with those three sprites instead of the current two.