Sailboats operate in an environment with two fluids moving along different vectors: the air, typically moving as wind, and the water, typically almost stationary. Two foils, the sail and the keel, use the relative movement of the two fluids to produce lift and move the boat.
In principle, it seems that one could use the shallow and deep water of a river, which move at different speeds, in a similar way to move the boat. Instead of having a sail and a keel, you'd have a sub-keel down deep and a surface-keel in the shallow water. The sub-keel would be in mostly stationary water near the bottom, playing the role of the keel on a normal sailboat, and the surface-keel would be in fast-moving water near the surface, playing the role of a normal sail.
Could this actually work? Has it ever been tried? What would be the difficulties with this design?