Short answer: No.
Long answer: there is, in theory, engine function (SwapCritters()) which allows that... But last time we tried it long time ago, it was working so bad that both player chars affected had to be deleted, as command broke them beyond repair.
So, what left? Script it on your own... You can grab mouse/keyboard in client scripts and control NPC thanks to that and help of another set of oserver scripts. Not an easy thing, i'd say it will end quite big, but in pure theory it should be possible to some extend. Not sure if worth the time, but oh well.