Arduino DDS Sinewave Generator

I don't understand why you don't just lose the shift register and have the R-2R ladder on 8 Arduino pins (say port D then writing is a single instruction). You'll get to MHz with the sinewave table perhaps?