It seems that a flow is designed to run linearly but I would like to create a flow using the flow builder that runs multiple actions in parallel. Is this possible and if not, is there a good workaround?
As @sfdcfox said in his comment, you can't execute anything from within a transaction in Salesforce in parallel - a transaction (a synchronous or asynchronous request execution on your org) is single-threaded and there's no mechanism for creating additional threads.
The only opportunity you have to execute things in parallel is to initiate multiple synchronous or asynchronous transactions from outside the org (or for the asynchronous transaction side of things, from an existing transaction within the org).
Take a look at this answer if you are interested in the LWC approach.
Use of multiple Queueables and/or batches may also give you something similar.
Implementing continuation once all the concurrent executions are finished can be somewhat fiddly too, but less so from the client-side perspective where the client is better able to keep track of outstanding transactions that relate to the one over-all process.