Align vertices with another vertex, but vertices must stay on their edges
There isn't a simple way. You can move the vertices on the z-axis and use snapping to align them to the other verts, unfortunately snapping does not work while using edge slide.

To get the result you are after -


Select the four corners of the part you want to align to
Press &#8679; ShiftDESC which will duplicate the vertices and leave them in the same location.
Press F to make a face from these vertices
Scale S this face so that it is larger than the outer edges
Choose Mesh->Faces->Intersect (Boolean)
Now select your top vertices and edge slide GG, you can move them right down - against the new vertices that are cut in the edges in line with the inner section.
Now select all A then w->remove doubles, 
Select and delete the extra bits left behind. I got an extra 2 faces under the section that is now flat, I deleted the two extra edges and dissolved the two vertices to end up with the desired mesh.