I'd suggest you start by looking at the nodes XYZ Grid and Partition Lists.
They should help you in significantly reducing the number of nodes in your definition.
As the name suggests, XYZ Grid is an easy way to set up a three-dimensional array of equally spaced XYZs. This should take care of a lot of the nodes in the upper left part of your definition.
You can then manipulate the X or Y values of your XYZ with the data gleaned from the image.
Lastly, for the creation of sublists for the lines, the Partition Lists node should - in you case - be sufficient. It allows you to chop up a list into sublists of a specified length. You could also do that with the Build Sublists node, but it would be much more efficient to use the correct syntax, which in your case would be "0..n" (where n is the number of points per row minus 1). A while back, Nathan Miller posted a good example of how the list building syntax works here.
I hope this is enough info to get you started.