Start by collecting all the dates of the current post (event) in the array. Then iterate throught the array and get all events for each date.
// all dates from current event in format "Ymd"
$all_dates = [];
for ($i = 0; $i < $date_count; $i++) {
// Get repeater fields
$dates="dates_times_" . $i . '_date';
$temp_date = get_post_meta( get_the_ID(), $dates, true );
// if value of dates_times_XX_date is in format 'Ymd' conversion is not needed
// Group by day
if ( !isset( $all_dates[$temp_date] ) )
$all_dates[] = $temp_date;
}
if ( !empty($all_dates) )
sort($all_dates);
foreach ($all_dates as $l_date) {
$query = "select post_id from {$wpdb->postmeta} where meta_key like 'dates_times_%_date' and meta_value=%s";
// IDs of events with that date
$events = $wpdb->query( $wpdb->prepare($query, $l_date) );
// get events with IDs,
// display header '<h2 class="medium-12 cell"> date </h2>';
// display events
// REST OF POST CODE HERE
}