This proposal employs four helper columns per day. Note that the helper columns may be hidden for aesthetic purposes.
Note that the proposal employs sorting the date/time column from oldest to newest.
The first helper column is populated using: =IF(COUNTIFS(C$3:C3,C3)>=INDEX(AA$4:AD$4,MATCH(C3,AA$3:AD$3,0)),"",C3)
The second helper column is populated using:
Formula:
=IF(F3<>"","",IF(SUM(COUNTIFS(F$3:F$67,D3),COUNTIFS(G$2:G2,D3))>=INDEX(AA$4:AD$4,MATCH(D3,AA$3:AD$3,0)),"",D3))
The third helper column is populated using:
Formula:
=IF(OR(F3<>"",G3<>""),"",IF(SUM(COUNTIFS(F$3:F$67,E3),COUNTIFS(G$2:G$67,E3),COUNTIFS(H$2:H2,E3))>=INDEX(AA$4:AD$4,MATCH(E3,AA$3:AD$3,0)),"",E3))
The fourth helper column is populated using: =F3&G3&H3
Note that the fourth column (I2:I67) is given the name Monday
Note that these four columns will need to be repeated for each day.
The table is then populated using:
Formula:
=IFERROR(INDEX($B$3:$B$67,AGGREGATE(15,6,(ROW($3:$67)-2)/(INDIRECT($AA$2)=AA$3),ROW(1:1))),"")
The formula that populates the table enables the names to be shown for the appropriate day (based on cell AA2) without needing a table per day.
Note that I changed the Max numbers for demonstration purposes.
Let us know if you have any questions.
Bookmarks