That's a good idea, but if you're comparing speed there, the top loop is still doing 100x614400 pixels and the bottom is doing 100x800x600 which is far less. You're not actually skipping any pixels in the top loop, you're writing some of them off the right edge of the screen.
Say for instance in your top loop i=1023 at some point, then y=0 and x=1023. That's off the screen. When you come to write the last scanline, you'll be writing into memory you don't own and could get a gpf.
eg,
i=614399
y=599
x=614399-(599*1024)=1023
Jim