You would need to alter the code in the Custom Code activity marked below. It currently creates the "OrderedPicks" array where the first 'layer' is split by aisle and contains the picks in that aisle. Instead you would add an additional layer to the array that splits the order into subtasks for one forklift each.


The token would then create child tokens in a Run Sub Flow activity equal to the number of entries in the array. Each of those would get assigned one entry from the array as their own "OrderedPicks" array, pull a Forklift and then run through the logic as before.
the big question is really by what rule to split up the tasks. Since you don't know how many forklifts will actually be available it doesn't make much sense to use a fixed number of subtasks. I think I would either split them completely by aisle and when a forklift is done with one aisle it becomes available to be pulled by a different token belonging to the same order before returning to drop off the pallet. Or you split by 'capacity', meaning after a fixed number of picked up items.
Another change that will be necessary is to create as many empty pallets are there are subtasks. Currently one empty pallet is created per order right at the start of the run. This would need happen after the actual number of subtasks in the order is known.