Arduino is capable of all kinds of pulse train generation.
Check out my "piano tones micros" postring, creates 13 independent audio frequency pulse trains at once.
Edge transition times will depend on signal loading.
The only real defined number is in
29.6 SPI Timing Characteristics
with rise/fall time of 3.6nS called out.
8 MHz output timing is definitely supported - I have banks of shift registers all being clocked at 8 MHz with no clock edge problems.