The simplest thing to do would be to create an NPC, however you like, and then change its appearance with the following script:
Code:
void main() {
object oObject = GetObjectByTag("your_NPC", 0);
int iAppearance = GetAppearanceType(GetFirstPC());
ChangeObjectAppearance(oObject, iAppearance);
}
If you need the NPC to have all the player's other stats, this is possible, but it's less direct. I've actually just been messing around with this stuff.
Oh, and keep in mind that the game automatically changes NPCs that have the same appearance as the player in certain cases. As long as you fire the script after it's spawned, I think you should be all right.