In an Alpha Beta search in that utilizes a Negamax framework, how does one collect principal variations to use in move ordering
Every strong modern chess engine which uses alpha-beta search uses a transposition table to store the PV move for ordering. If you are writing a chess engine, you should this high-performance, now ubiquitous technique.
and how does one use them, without using a transposition table?
There are various approaches to storing the principal variation which are commonly used alongside a transposition table. The most popular of these is a triangular PV table. The Chess Programming Wiki has a page on this, which includes code examples as you requested.
Additionally, would it be different in a principal variation search
No. Move ordering can be implemented in the same way for both pure alpha-beta and for PVS. The only difference is the way in which the ordered moves are searched.
and do we collect and store important moves for quiescence search too?
No. Standard techniques used to order captures are sufficient in quiescence search (namely, MVV/LVA and Static Exchange Evaluation). The move stored in the transposition table may not be a capture, so it is unlikely to be useful for quiescence.