Adding a blog archive with pagination using WP_Query

You can calculate offset via paged and posts_per_page. E.g:

$per_page = 6;
$paged    = get_query_var('paged') ? : 1;
$offset   = (1 === $paged) ? 0 : (($paged - 1) * $per_page) + (($paged - 1) * 2);

$args = array(
  'order' => 'ASC',
  'paged' => $paged,
  'offset' => $offset,
  'orderby' => 'ID',
  'post_type' => 'post',
  'post_status' => 'publish',
  'posts_per_page' => $per_page,
  'ignore_sticky_posts' => 1
);

$query = new WP_Query($args);

while ( $query->have_posts() ) : $query->the_post();
  echo get_the_title() . '<br>';
endwhile;

previous_posts_link('&laquo; Previous', $query->max_num_pages);
if ($paged > 1) echo ' | ';
next_posts_link('More &raquo;', $query->max_num_pages);

echo '<br> Showing ' . $offset . '-' . ($offset + 6) . ' of ' . $query->found_posts . ' posts.';

wp_reset_postdata();

Note that the loop start at index 0, so if we ignore sticky posts and only display 6 posts per page, the result on page 2 should be 8-14 instead 9-14 as you expected.