I am going to propose an unconventional solution at the project level: dynamically name your samplers for hours (or date and time) so that the name changes every hour, and therefore they will appear in different categories, i.e.

Code for this name:
${__time(dd:hh,)} the rest of sampler name
Such a sampler will be displayed as follows in the summary report (here I modeled it using minutes / seconds, but the same thing will happen with days / hours, only on a larger scale):

Pros and cons of this approach:
Simple, you can aggregate anything by hours, minutes, or any other time fragment during the execution of the test, rather than analysis after execution.
Listener independent, can be used with almost any listener or visualizer
, . , , - .
__time
, , , script.
, JTL CSV ( , ) , , .
Script , . 100 , . ...