The important thing to understand in the model is the bit-wise encoding of the station states. Each DP has a "StationNum" label. When setting their signal to 'ready', the station adds '2 to the power of their number' to the tracked variable "ReadySignal". So if only the first station (StationNum 0) is ready, the variable's value in binary would be 0000000001. If the station with number 2 also becomes ready this changes to 0000000101 and so on. For all stations to be ready the value thus must be 2^10 - 1 (1023 as a decimal number).
Each station is connected to an Object Process Flow. A token there waits until an item arrives at the station. The first stations on each conveyor wait for the entry of an item on the conveyor instead. Since the conveyor is standing still when an item enters it wouldn't actually 'arrive' at the DP. The station then sets its bit in the variable to 0, thus stopping the conveyor. After a process time has elapsed, the bit is set to 1 again. The last station instead waits for the item to have been picked up.
A token in the general Process Flow waits for the Tracked Variable to reach the value 1023 and then starts the conveyor. When the value drops below that number, the conveyor is stopped. As I said, there is small delay because only a single item can 'arrive' at a DP in the same instant. So the conveyor continues for 30ms (value determined through trial and error) to allow all other DPs to also trigger. For this to work it is also important that the Exit Transfers have an increased size, otherwise they would stop any arriving item and thus the conveyor.
Just before the operator who loads the items onto the conveyor would unload an item, a token is created (when the 'Travel' task to the unload location finishes). This token checks if the conveyor is currently running. If so, it stops the operator from unloading the item until the conveyor has stopped.
Edit:
I actually just realized an important detail. Due to the small delay before stopping the conveyor the items move a little bit beyond the DPs and are thus closer to the next DP than an item that was just placed on the conveyor.
The EntryTransfers should thus be placed that same distance behind the first DPs to keep the required move distance the same for all items.
So with a delay of 10ms and a conveyor speed of 0.5 m/s the transfers should be placed 5mm behind the first DPs.

Also, switching the "Wait For Entry" and "Set Signal: False" activities in the flow of the first stations means that they won't always wait until a new item has entered before the conveyor cycles again. This thus allows for empty slots on the conveyor if new items are not added fast enough.
synced-cycle-conveyors_1.fsm