User registration add user ID?

You can’t add the ID at registration because there is no ID until after the user has registered. (See a possible way around this near the bottom).

You could tack on the ID after the registration with the user_register hook.

function add_ID_wpse_99390($a) {
  global $wpdb;
  $user = new WP_User($a);
  $wpdb->query("UPDATE {$wpdb->users} SET user_login = CONCAT(user_login,'_',ID) WHERE ID = {$user->ID}");
}
add_action('user_register','add_ID_wpse_99390');

Notice that is SQL. That is because you aren’t supposed to be altering the login name at all. It is also going to be very confusing for your users as they now have a login name that doesn’t match the one they chose. They won’t be able to login. This is a flaw inherited from your plan to silently alter the login name.

You could hook to sanitize_user prior to creating the user, but you’d need some other value besides the ID.

function add_ID_v2_wpse_99390($login) {
  remove_filter('sanitize_user','add_ID_v2');
  $uexists = username_exists( $login );
  if (!empty($uexists)) {
    $incr = get_option('_uname_incre');
    $incr = (!empty($incr)) ? $incr + 1 : 1;
    $login = $login.'_'.$incr;
    update_option('_uname_incre',$incr);
  }
  return $login;
}   
add_filter('sanitize_user','add_ID_v2_wpse_99390');

That code uses a value in the options table to increment the login name suffix. Again, I expect this to be confusing for your users, as their username will be different from the one they chose, but in this case the altered username should be included in the registration email (assuming your users pay attention).

You might be able to run a query like…

$wpdb->get_var("SELECT MAX(ID) FROM {$wpdb->users} LIMIT 1");

And use that value plus one for your suffix but I don’t know how reliably that would keep your suffix in line with the actual user ID. And it would expose the user ID, which could be a security issue though probably a minor one.

My final take is “don’t do this”. At best is just going to be confusing. WordPress should offer a warning if someone tries to create a user with a name that is already taken. That user will have to chose another name and problem solved.