How can align vertices using a curve?
You can convert the curve to a mesh (best if you keep the original as well, there is a setting for that), and then snap to the edges of that mesh. The mesh resolution of the converted result depends on the Preview U value in the curve shape tab:



Once that is set high enough, you can select the curve and hit Alt + C to get the convert to popup. Select Mesh from it. Then, set the Blender snapping mode to Edge and snap your vertex to the curve. See this animation for clarity: