The safest way is to isolate that experimentation in its own UCM Stream.
Because if you don't, you may be able to do partial delivers from a while, before being forced to deliver all your activities: see "Clearcase UCM - Cross delivering vs. delivering upwards?".
The other dependency issue is file-based (when your activities to be delivered are based on versions created in activities for experiment). That is another argument for isolating said experiment in its own Stream.
And that would make deleting an activity quite dangerous.
Deleting an activity is only possible if it is empty, meaning if you have moved all the versions in another activity (which solves nothing), or if you have rmver
them.
And you should avoid deleting a version (too dangerous in ClearCase UCM).
With a dedicated Stream, you are sure to deliver all activities, or to deliver none.
The subtractive merge mentioned by Tamir certainly isn't a solution, especially when you have many activities to cancel (ie when you have been forced to deliver many activities).
You do have a script to cancel an activity (see "Reverse Changset of an activity in Clearcase"), but that will pollute your history with many additional versions.