OK, I punt. I tried to figure it out but don't have the time or lisp to do it. Thought about using an EndCommand VBA event but without doing an item by item comparison of P1 and the last selection set made I can't figure it out. I figured that I could catch a selection set being added to the dwg via VBA but it doesn't appear to be the case. Probably could if I had the time. Your best bet is if someone who is good with vlisp reactors (hint hint LE) was to come along and wrap this in a reactor that fired when a selection set was made. Then you could !p1 !p2 !p3, etc. to get to them
((setq p10 p9)
(setq p9 p8)
(setq p8 p7)
(setq p7 p6)
(setq p6 p5)
(setq p5 p4)
(setq p4 p3)
(setq p3 p2)
(setq p2 p1)
(setq p1 (ssget "P"))
)