18 bit: 15 Hz
17 bit: 30 Hz
16 bit: 60 Hz
15 bit: 120 Hz
14 bit: 240 Hz
etc.
I think that is fast enough to do what you want. Also I think you will be able to do SPI in parallel without problems. Are you talking of an SPI master or slave? For an SPI master you don't really need interrupts. For a slave it's another story of course, I don't have experience with the SPI slave on the ESP8266.
The trick is:
- prepare anything possible before starting the PWM
- don't do "anything" in the ISR
- use the timer2 interrupt
- for short delays, the timer will already have fired before you leave the ISR, so don't leave the ISR for those short intervals
- use the NMI