1ページ目が15件、2ページ目以降が10件の場合。

$posts_per_page = $paged > 1 ? 10 : 15;
parse_str ( $query_string, $org_args );
$add_args = array (
    'posts_per_page' => $posts_per_page
);
if ( $paged > 1 )
    $add_args['offset'] = 15 + ( $paged - 2 ) * 10;
$args = array_merge ( $org_args, $add_args );
$wp_query = new WP_Query( $args );
$wp_query->max_num_pages = ceil ( ( $wp_query->found_posts - 5 ) / 10 );
if ( $wp_query->have_posts() ) {
    while ( $wp_query->have_posts() ) {
        $wp_query->the_post();
        // ループ
    }
    wp_reset_postdata();
}
the_posts_pagination();

順番に説明します。
まず、 posts_per_page を1ページ目なら15、2ページ目以降なら10に設定する。

$posts_per_page = $paged > 1 ? 10 : 15;

次に、オフセットを計算する。
2ページ目以降の場合は、1ページ目の15件+1ページごとに10件読み飛ばす。

if ( $paged > 1 )
	$add_args['offset'] = 15 + ( $paged - 2 ) * 10;

最後に合計ページ数を再計算する。
記事数から1ページ目の余分な5件を引いて、10件で割ればいい。

$wp_query->max_num_pages = ceil ( ( $wp_query->found_posts - 5 ) / 10 );

まぁ滅多にないですけどね。
だからこそ困ったときの参考になれば。