I would like to be able to drive the rotation of a boat by the z value of a surface vertex of a plane with ocean modifier on it.
Is there a way to access to this data without Python?
You can add an empty, select it and then Shift select your plane. Enter edit mode and hit CtrlP. This will parent you empty to the vertex, so the empties location will match that of the vertex.
To make this work with the ocean modifier. Make a new object, set it to shrink wrap the plane with your ocean modifier, and then make it a single vertex. Use the above parenting technique to attach you empty to the vertex.