「切り替える」という表現から、1つのgemの複数バージョンを同時に使う必要は無くて、プログラム毎に1つのバージョンを使うということだとして回答します。
bundlerというツール(gem)を使って、そのプログラムで使う個々のgemのバージョンを指定することが出来ます。
「bundler 使い方」などで検索してください。
あるいは、bundlerを使わず、
Ruby
1gem "foo", "1.2.3"
2require "foo"
とすれば、指定したバージョンのgemが読み込まれます。何も指定しないと当然ながら最新バージョンが読み込まれます。
最初は、「aaaというgemを使うためには、xxxというgemは 1.0でないといけないが、bbbというgemを使うためにはxxxは2.0でないといけない。aaaとbbbの両方を1つのプログラムで利用することは可能か?」という質問かと思ったのですが、違いそうですね。