Edited answer: You're almost there
I see you edited your question to show that the times appear in a grid. This is perfect, since a grid does exactly what the rest of this answer suggests. Even if the grid is "transparent" it is apparent.
Your table follows a convention. It is clear. It could be a bit clearer, still. Why don't you experiment with:
- Remove some of the needless repetition (the zeroes). There are two sets of zeros, so an opportunity for simplifying. Removing both may be too much. Give it a try.
- Improve the text alignment. Currently, the zeroes seem further to the left than the header labels. Alternatively, try centering the text (though I predict that won't work as well because it destroys the invisible grid).
- Mock up a 24-hour version, to see how it affects the clarity.
- Experiment with background fill colours and borders, although that adds visual clutter that you don't need.
The thing is, if you try some variations, you'll see what looks clear. And then you can test it, by asking people to perform the same task. Give different participants different versions of the grid, and measure their total performance times.
Above all, do not listen to the opinions of people about visual design. (Did you notice that I'm giving you lots of choices, not one "right" answer?) See how the design performs in the hands of participants and users.
Original Answer: Emphasize the grid
Can you show that there's a range by illustrating it graphically? Or by using layout to your advantage?
Consider these vertical arrangements:
Each hour's text is vertically aligned at the ":" colon. Each hour has its own box, which makes it clear that each increment is one hour. On the right, the placement of the text at the top of the box makes it even clearer that the box represents a whole hour. Time increases from top to bottom, so the top is the beginning of the hour.
Also, there's no confusion about where 8:00 am belongs: not in the 7am–8am box, but in the 8:00 box. And there's no need to mess with extra cognitive work of ranges like 7:00–7:59.
This horizontal arrangement has a similar clarity:
In this case, the text is left-aligned, not aligned at the ":" colon, because the label appears at the "beginning" of the hour. The time increases from left to right, so the left edge is the beginning of the hour.
I hope this helps you move forward.