How to fetch only current hour posts?

I think Date Parameters is the thing you’re looking for.

So if you want to get posts from given hour, you can construct a query like this:

$hour_posts = new WP_Query( array(
'date_query' => array(
    array(
        'before' => '2019-05-08 10:00',
    ),
    array(
        'after'  => '2019-05-08 09:00',
    ),
),
'posts_per_page' => -1,
) );

And if the day doesn’t matter and you want all posts published within given hour but from all days, then this will come handy:

$args = array(
    'date_query' => array(
        array(
            'hour'      => 9,
            'compare'   => '>=',
        ),
        array(
            'hour'      => 10,
            'compare'   => '<'
    ),
    'posts_per_page' => -1,
);
$query = new WP_Query( $args );