Add a field between name and email
If you are doing it by custom code, you have to move the field to 'account' container, example code looks like

function my_module_name_form_form_alter(&amp;$form, &amp;$form_state, $form_id) {
  if ($form_id == 'user_register_form') {
    // Change weight in respect of user name field.
    $form['field_test']['#weight'] = $form['account']['name']['weight'] + 1;
    // Use machine name of field as form field, replace 'field_test' with your machine name.
    $form['account']['field_test'] = $form['field_test'];
    unset($form['field_test']);
  }
}