It could be done without a PLC, and I don't see the importance of CAM. The only added complexity of programming a dual spindle lathe, is turning it on/off, and the part swapping. The actual turning/machining is just like a normal lathe, except the spindle is on the opposite side, so provided you're proficient in programming a standard CNC lathe, you'd just need to consider the part handover and machining from the opposite direction.
If you're happy to have the secondary spindle slaved from the primary (i.e. as I mentioned previously), then all you need is some method to ensure the secondary spindle is synchronised to the primary, and some method of activating the secondary spindle.
Depending on what spindle motors/drive systems you use, you could probably get away without perfect synchronisation.
If you use servos with toothed belts, then it would have to be near perfect synchronisation. I could think of a couple ways to do this, but my personal preference would be a KFlop, as you could program it to do the synchronisation, and activate/deactivate the secondary spindle via some custom M codes/Macros within Mach.
However, if you were to use DC motors, or even two VFD driven AC motors with the VFDs set via Modbus (so you can set the exact frequency on both) connected to the spindles via a non-timed belt (i.e. V or multi-V), then you should get enough 'slip' in the drive system to handle both spindles being mechanically linked during the handover period. All you'd need to do is have a M-code/Macro to connect/disconnect the secondary spindle, which would be as simple as an extra output switching a relay or two.
Off course, that method would mean you wouldn't get repeatable synchronisation, but depending on what you want to achieve, that may be perfectly acceptable. It would certainly work for the parts in those video.