WordPress doesn’t know which user created which, so first you need to store the creator’s data in the newly created user meta so you can so something like this:
add_action( 'user_register', 'Store_creator' );
function Store_creator($user_id){
$creator = wp_get_current_user();
//only do this when none admin creates the user
if ( $creator->roles[0] == 'administrator' ) return;
update_user_meta($user_id,'_creator',$creator->ID);
}
Then you customize the list of users he can see based on that meta:
add_action('pre_user_query','custom_pre_user_query');
function custom_pre_user_query($user_search) {
global $wpdb;
$user = wp_get_current_user();
if ( $user->roles[0] != 'administrator' ) {
global $wpdb;
$user_search->query_where =
str_replace('WHERE 1=1',
"WHERE 1=1 AND {$wpdb->users}.ID IN (
SELECT wp_usermeta.user_id FROM $wpdb->usermeta
WHERE wp_usermeta.meta_key = '_creator'
AND wp_usermeta.meta_value = {$user->ID})",
$user_search->query_where
);
}
}