Very out of the blue but:
you could write a plugin that (on register form submission) creates a new (inactive) user, preferably with the exiting modx processor to create a new user, so you don't have to do the whole validation etc. like:
// $attributes are your form fields from the register form...
$response = $modx->runProcessor('security/user/create', array(
'username' => $attributes['username'],
'email' => $attributes['email'],
'fullname' => $attributes['fullname'],
'website' => $attributes['link'],
'active' => 0, // set the user to inactive on creation
'sudo' => 0,
'blocked' => 0,
'class_key' => 'modUser',
'passwordnotifymethod' => 's',
'passwordgenmethod' => 'spec',
'specifiedpassword' => $attributes['password'],
'confirmpassword' => $attributes['confirmpassword'],
));
then when the user payed, the admin could just set the active checkbox to checked...
as there is an active user now, that should be able to edit his profile, I guess you'd have a login page where the user can login with his credentials?
he can do that and then has some kind of link for editing his profile. That link points to a resource where you would put the [[!UpdateProfile]] snippet call...no?