I don't think it has anything to do with algos, volume throughout the day has had this pattern for years. Personally, I believe it's to do with the fact that morning is the first chance to trade on things that happened overnight, and afternoon is the last chance to trade on things you think will happen overnight. They are inherently more active, not to mention that many people use market-on-open and market-on-close orders, which themselves lead to ancillary hedging orders and so on.
You could also do a similar analysis with volatility or range as the proxy for trading activity, accumulating bar data until a certain range has been traveled. This is the essence of point-and-figure charting I guess. Here I used trading volume as the proxy for trading activity.
My goal with this is do mean-reversion trading on bars which are as comparable to one another as possible. The next step, for me, is to calculate the aggregated bars using not the closing price of the final bar, which is a bit random, but the VWAP of that bar, and check out the statistics of that time series. There is still the problem of overnight gaps, I am not sure what to do about that, ideas are welcome. I am wondering if I should make a synthetic bar from 16:00 -> 09:30, which if the aggregation period is roughly 1/5th of a day, might make sense. This would correspond to the hypothesis that stock prices are some hidden process which we sample throughout the day, but which still going on at night though we cannot observe it.
FWIW if you could track the flows of money from stock to stock, that would be a golden ticket. Not sure how you would do that though...?