Quite by accident, I found that that the "translate" script methods - TranslateTo, TranslateToRef, etc. - effectively "pin" the target until the translation is complete. You could try TranslateTo on the actor, giving X,Y,Z coordinates that are the same as his current coordinates.
TargetActor.TranslateTo(TargetActor.X, TargetActor.Y, TargetActor.Z,...)
I've used this on NPCs and they continue to animate, but don't move anywhere. The catch is that it can look silly, especially if you don't "unpin" them at the right time with TargetActor.StopTranslation().