I just read a book that says that the activation record at the top of the stack (in memory) is always where the point of execution is. So my question would be, what activation record is at the top during a parallel execution? Especially for the same program but running multiple threads.
The book is presenting a somewhat idealized and simplified view. In systems with coroutines, the conceptual function that is running at any given time may not be the one whose stack frame is at the top of the stack. (In practice this is often implemented by fusing all the activation records for the coroutines into a single activation record so one can argue the statement is still true. However in this spirit of the question, insight comes from appreciating the details.) Plenty of systems heap allocate activation records for closures as well and in that case, the currently executing function's activation record is not on the stack at all.
As the comment above mentions, typical threading mechanisms implement a separate stack per thread, so there are multiple topmost activation records. There are alternative designs where the concept of "stack" gets pretty blurry. The main complication with threads is managing the storage for many stacks introduces complications. Often having lots of threads means the stacks should be small, but that limits the depth of calls a thread can make.
When a thread of execution enters the operating kernel or takes an interrupt it often switches to another stack for security and correctness reasons.