There are 2 things here that I think you need to get a handle on:
1 - Scrolling of textures is cumulative.
When you set the scroll to 0.1, and scroll again with 0.1, you have scrolled to 0.2. If you want to reset the texture from that point, you need to scroll by -0.2.
2 - Texture coordinates are much smaller than you are using.
Usually, texture coordinates range from 0.0 to 1.0. When you create a plane, no matter how big you make it, and no matter how big or small the texture that you use on it, the texture coordinates range from 0.0 to 1.0
So, reduce your numbers used in the scrolling, and don't change them to keep moving the texture:
for ( int i = FirstWaterObj; i < LastWaterObj; i++ )
{
dbScrollObjectTexture ( i, 0, 1.0 / 128.0 ); // Assuming your texture is 128 pixels and you want a 1 pixel scroll
}