You can use UpdateSubresource to update a texture. You can use CopySubresource to copy the texture to another texture created with staging usage and CPU read access, which you can Map and obtain a pointer to when you want to read pixels back.

I guess for that you don't want to read pixels back though.. but do the water simulation in a shader and just tell it where the cursor is.. You can read multiple pixels in the pixel shader if you want to.