I have two threads, both nanosleeping() for 0.5 ms. They both do partial drawing. First every 20 ms, second every 40 ms (i shifted startup of first by 5ms so they colide as little as possible). It's single core CPU celeron 1.6 Mhz. When under full load (most intesive scrolling), these two threads use 10%. Under normal drawing they use 3%. When i use bigger step, if they miss by more than 3ms, it's practicly visible. (It's all because of that slow library, i have these 'issues').
EDIT: even 2ms lag if happens few times is more than visible!