ATmega328p driving RGB LED WS2801
The chip timings are in nanoseconds, not milliseconds, so you only have a few cycles between bits, definitely not enough that you need a timer. The long delay between bits resets the devices after each bit, so the next bit is again interpreted as the first bit of a block.

I'd use a few consecutive

asm volatile ("nop");


as delays, seven should be a good start.