Creating a wavy dot pattern in a Cycles shader
This tree divides the UV space into XY cells, and samples the sine of X at every cell to stagger the position of the Y cells.



This results in a modified UV space which looks like this: (X->R, Y->G, 0 at the center of each cell)



This space can be used to tile any UV-dependent texture in a sine-wave pattern.

In this case, we use the output vector as the 'Vector' input of a procedural dot:



With this sort of result:



It's actually quite tricky to adjust the frequency and amplitude so the cells sample the sine wave at the right rate to maintain the 'wavy' look, but I don't think that can be constrained to make it easier.. unless we fixed it to make every other row black, or something, so the right dots are associated with the right dots, perceptually. We could tweak it to do that, or something like it, if you like.

EDIT: @natedogg has improved the answer, to make it easier to see the pattern. (See OP) The attached .blend includes the improvement.