generative modeling for Rhino
you could create a sdl line in every point (0,1,0)
then find the intersection between the surface and those lines.
When trying to find what points are "on" a surface, are they co-planar?
If so then there is a component in Curve>Analysis called Containment which will find where a list of points are coincident, inside or outside a closed curve. If you supplied the border of the surface you could then manipulate the output to get a boolean pattern for culling.