A good example of that type of implementation in the admin would be the product creation admin in sonata ecommerce (see the createAction in the ProductAdminController: https://github.com/sonata-project/ecommerce/blob/master/src/ProductBundle/Controller/ProductAdminController.php).
Basically what we did was override the AdminController through the service definition (see https://github.com/sonata-project/ecommerce/blob/master/src/ProductBundle/Resources/config/admin.xml), which allowed us to override the createAction to begin with a type selection, and then edit the form according to this argument (here it's not a type per say, but a product provider ; but this basically is the same thing).