Making my plugin create a page?

You can use wp_insert_post to insert a physical page, though I would suggest creating one page for the plugin and then using a rewrite rule to give all of your items a URL with that single page as the base.

EDIT

quick rewrite example with added query var:

function wpa55546_rewrites(){
    $page_slug = 'your-page';

    // urls will be in the form
    // /your-page/42/

    add_rewrite_rule(
        $page_slug . '/([0-9]+)/?$',
        'index.php?pagename=" . $page_slug . "&my_id=$matches[1]',
        'top'
    );
}
add_action( 'init', 'wpa55546_rewrites' );


function wpa55546_query_vars( $query_vars ){
    $query_vars[] = 'my_id';
    return $query_vars;
}
add_filter( 'query_vars', 'wpa55546_query_vars' );

then in the template you’ll have access to the value of your query var:

echo get_query_var( 'my_id' );

you’ll also have to flush rewrite rules at the appropriate time.