show category name before first posts in each category

You can go with two queries, the first to get your taxonomies like this :

$categories = get_categories();

More infos about the params here.
And then browse your category collections and get the first n posts of it like this :

foreach($categories as $cat)
{
    //get the $n posts from this category
    $post_query = new WP_Query(
        array('post_type' => 'post',
          'posts_per_page' => $n ,
          'tax_query' => array(
                array(
                  'taxonomy' => $cat->taxonomy,
                  'field'    => 'slug',
                  'terms'    => $cat->term_id,
               )
         )
       )
    );
    echo '<h2>'.$cat->name.'</h2>';
    while($post_query->have_posts()){
       $post_query->the_post();
       echo get_the_title();
    }wp_reset_query();
}

Hope it will help =)