First of all, you would use WP_User_Query instead of WP_User class to find the list of users. I wrote up a snippet to demonstrate this. I haven’t tested it, so you might want to rewrite the whole thing. For reference, checkout this blog post http://mattvarone.com/wordpress/list-users-with-wp_user_query/ and the codex http://codex.wordpress.org/Class_Reference/WP_User_Query#Pagination_Parameters
$per_page = 10;
$offset = isset($_GET['offset']) ? $_GET['offset'] : 0;
$args = array(
'role' => 'Subscriber',
'number' => 999999
);
$user_query = new WP_User_Query( $args );
$total_pages = count($user_query->get_results()) / $per_page;
$args = array(
'role' => 'Subscriber',
'orderby' => 'display_name',
'number' => $per_page,
'offset' => $offset
);
$user_query = new WP_User_Query( $args );
$all_users = $user_query->get_results();
foreach($all_users as $user) {
$user_info = get_userdata($user->ID);
//Format your output here
echo $user->email, $user->first_name;
}
echo paginate_links( array(
'base' => $base,
'format' => '&offset=%#%',
'prev_text' => __('« Previous'),
'next_text' => __('Next »'),
'total' => $total_pages,
'current' => $offset
));