It's not possible to synchronize multiple dimension-groups directly - they are completely independent to eachother. Possible workarounds could be to define several slightly different groups and control their visibility with a condition like:
pick(match(getcurrentfield(Group1), 'A', 'B', 'C'),
Group2A, Group2B, Group2C)
Another way might be to replace the dimension-groups with a variable-logic which wouldn't be easy to implement and would have quite probably some lost or at least changed usability.
A further approach could be to change the order within the groups with macros which won't work with the AJAX client and which might need some efforts to develop, too. If you consider this option seriously you should take a look into the APIGuide.qvw for methods, parameters and examples (is in your install-folder by automation).
Thank you for your reply. I ended up creating a variable to store the name of the selected partner. That variable is then driven by a set of buttons the user click on. I then created calculated dimension lists that are created using the pick match functions (you suggested). It took me a little to get the syntax just right but now it works and I am very pleased.
This is an example of how the dimension is selected for Country:
=pick(match((vPartner),'End User','Orig Sold To','Sold To','Curr Cust','Ship To','Key Cust'),[End User Country],[Orgin Sold to Country],[Sold to Country],[CurrCustomer Country],[Ship to Country],KeyCustomers.Country)
I then made similar dimensions for City, Region and Customer Name lists. They are all driven with a single click on a button as desired. Awesome and not to tough.