No, model.apply will recursively apply the passed method to all layers.
I think the cleanest way would be to write a custom module using your suggested behavior and replace all batchnorm layers in the model with your custom ones.