How to interpret MAX7219 timing diagram?
No, no delay is needed. I have used MAX7219 with Arduinos at 8 MHz SPI clock, back to back writes were not an issue.

The timing diagram just shows chip select (Load) going low, 16 bits going out with the clock, and chip select going high.

I use SPI.transfer, with port manipulation like you did, but as an example here with digitalWrite:

digitalWrite (ssPin, LOW);
SPI.transfer(address); // from 1 to 15, or 0 if using NOP
SPI.transfer(dataToSend); // varies by register. 1 to 8 are data display, 9+ are command registers
digitalWrite (ssPin, HIGH);


Replace the digitalWrite with your SLAVE_SELECT; &amp; SLAVE_DESELECT; commands. For a single MAX7219, I would have 5 of these in setup() to configure the intensity, Normal mode, # of digits (scan limit), not Mode B, and display test.  Others might do that as 5 function calls. Or 1 function call to do all 5.

SLAVE_SELECT;
SPI.transfer(address); 
SPI.transfer(dataToSend); 
SLAVE_SELECT;
// no delay needed here,even with 8 MHz SPI clock
SLAVE_SELECT;
SPI.transfer(address); 
SPI.transfer(dataToSend); 
SLAVE_SELECT;


And if you are bit-banging this, the transfer will be even slower:

writeWord(0x0A, 0x0F); // brightness