VHDL - How does a process run concurrent with other processes and components while it executes sequentially?
Signals are always evaluated in a concurrent way.  Variables are really just a convenience for making calculations or used as helpers in loops or generates.  In general, they contain combinatorial evaluations or are used as iterators.  In that sense they produce synthesis, but the sequentiality in their assignment is not synthesized per se, they will never make a signal change more than once in a single pass of a process (signals retain the last value assigned to them in a process). 

This phrase that I use "single pass of a process" sounds very academic, and does not properly convey its relationship with hardware (hardware in this context being basically logic gates and flip flops).  The process is evaluated when any signal in its sensitivity list changes.  What this means in hardware is that the inputs to a combinatorial block changed, therefore it may be possible that the output or outputs of this block change as well.  A signal may be assigned multiple times in a process, but this is only a way to code priority in evaluations (in describing how the combinatorial block works), not actual changes in the outputs in sequential manner.  That is why it is said that the signals retain the last assignment in a process.

The best way to understand all this is to see how digital blocks that you can see in a schematic are coded in vhdl (or the language of your preference).  When you get the hang of it, and start using variables as 'helpers', you'll see why they are what they are, why they are not the same as signals, and why the sequentiality in their assignment inside processes is not synthesized as such.