How do I transfer more than 1 byte at once via SPI bus?
I believe Arduino's SPI.transfer waits to receive 8 bits after sending 8 bits.


Incorrect. With SPI, a byte is clocked in at the same time as a byte is clocked out. It may be that this byte is simply a dummy byte though, if the slave has nothing to say.

So for 24 bits, simply clock out 3 bytes without deasserting the select. Since SPI is a synchronous protocol there should be no issue with having a delay in between bytes provided the select is maintained.