The only alternative that I can think of is writing a program that does HDELETEs.

Could be done as user-written JNI, but somewhat easier to build a z/OS Unix module and then run is via Runtime.exec() or com.ibm.jzos.Exec. Could pipe a list of datasets to delete or HDELETE via stdin.