It's not an elegant solution, but could you put each tab inside conditionalPanel()? Something like:
tabBox(
conditionalPanel([some condition], tabPanel([content of tab])),
conditionalPanel([some other condition], tabPanel([content of tab]))
)
Alternatively if you just want to have a different tab selected each time a user changes an option (rather than hiding/showing the tabs completely) then it might be worth looking at updateTabsetPanel().