Custom-post-type-archive: posts sorted/filtered by year?

create a variable to hold the $current_year you’re outputting, and check it against each event’s year, resetting the value when you encounter an event with a different year:

$current_year="";
while ( $loop->have_posts() ) : $loop->the_post();

    // this is just a simple example of the logic,
    // you'll need to extract the year from your date key
    $this_year = get_post_meta( $post->ID, 'event_date', true );

    if( $this_year != $current_year ) :
        // new year, output the year header
        // and reset current year to this new value
        echo '<h3>' . $this_year . '</h3>';
        $current_year = $this_year;
    endif;

    echo 'event' . $this_year;

endwhile;