I suppose my main question is how do you know in the shader which vertex is currently being
processed so you can manually adjust it?
Thanks again
You don't know. Each vertex carries some information that you gave it when originally creating the mesh (position, texcoord, normal & such). You can use that to determine something about the vertex. You cannot assume any execution order in the shader (except by depth sorting probably, and that's mostly useless to know in vertex shader code). Just think as if there existed a single vertex only. The same shader code executes for each vertex independently of any other vertex.
The vertex shader alters the vertex position. You can additionally do calculations like vs_output.something = f(vs_input.vertexdata, time, shaderconstants) and pass the result(s) to the pixel shader (which interpolates).
If you want to move the box up, you must pass "time" to the shader and then in the vertex shader write something like vs_output.Position.y = vs_input.Position.y + time * 0.01. And of course do the transform(s) as Blindy said above.