This will be possible to control this. You will probably have to create and additional field that has the status in it, i.e. Part1, Part2, Part3, etc. and every branch in your State Machine will update this status field. You can then also display this on your form and according to this value you will hide or show panels with the Nintex Form rules but I will suggest that you build each part in its own panel control and then just hid or show the panel.
I think to try and do this by user will be a bit more tricky. Will you be able to make it work on process status?
You can try with Start a Task Process(Assign a To - Do Task) which similar to Assign a Flexi-Task but you cannot do Lazy Approvals . If Lazy Approval is not required in your scenario you can better start a task process under different states of a state machine. You have to decide the flow of the WF as design your state machine.