I will caveat this by saying that I am still not 100% sure I know what you are doing, but I believe the following will sort your results by time only assuming that your meta values are proper Unix timestamps.
function orderby_time_only($orderby) {
remove_action('posts_orderby','orderby_time_only');
return preg_replace('|(.*)\s(.*)|','DATE_FORMAT(FROM_UNIXTIME($1),"%k%i") $2',$orderby);
}
add_filter('posts_orderby','orderby_time_only');
$args = array(
'post_type' => 'event',
'posts_per_page' => -1,
'nopaging' => true,
'post_status' => 'publish',
'meta_key' => 'start_time',
'orderby' => 'meta_value',
'order' => 'ASC'
);
$my_query = new WP_Query( $args );
The date itself is ignored so if you have multiple dates mixed together that should not be, they will get scrambled.
The add_filter
line should come immediately before the query you want it to influence but the callback can be defined elsewhere.