Is "process" statement concurrent or sequential in nature?
Processes run concurrently with each other, as per comment above. So a process is a concurrent statement.
Within a process, statements act as if they execute sequentially. I stop short of saying they execute sequentially because, nominally, they take zero time.
This also gets to the heart of the difference between signals and variables.
Within a process, use variables, and you are in the familiar world of sequential imperative programming, like C or Ada. Indeed you can translate simple programs directly into VHDL and expect them to work. (With Ada, very little translation required).
This may make inefficient hardware, requiring further translation to pipeline them or break them up into smaller steps rather than attempting to execute them in a single clock cycle, but this approach is fine for simulation e.g. to produce a golden model for your testbench, to compare against your actual hardware for correct results.
Signals are the inter-process communication mechanism. As such, their semantics are different to preserve determinism. The Q&amp;A linked above describes how signal assignment works to prevent race conditions between processes.