No. But it won't take all that much custom development to achieve.
A full detailed answer would be blog post sized; so am just posting the general principle here for inspiration.
Your problem is; the Rules Engine operates on an if-else-then basis, and it does so by-component. You have no control over component relationships. Reasons for this are many; but looking at the underlying XML structure in the
__Renderings field will pretty much tell the tale.
What you can do however, is create a simple "Item Renderer" component of your own. Its datasoure would be little more than a simple Treelist or Multilist control. In that - you will select your datasource items to be rendered and - given you do have control over this in both
Multilist - you can control their individual ordering as well.
The Item Renderer would then loop through items, in the order listed, and render the item. How? Well there are several ways - but the
__Renderers field is an obvious candidate. I've also used the
__Action fields on items to achieve this, but this limits your rendering choices to purely Controller Renderings.
With this in place; all you need to do is create multiple variations of the "Item Renderer" datasource Multilist and use those in your Rules Engine based personalisation.
Not an ideal solution and plenty of room for improvement; but hopefully gets you thinking a little bit outside the box and help you along :-)