Concordo com as sugestões de agrupar suas exclusões em partes gerenciáveis, se você não puder usar TRUNCATE, e eu gosto da sugestão de descartar / criar por sua originalidade, mas estou curioso sobre o seguinte comentário em sua pergunta:
É basicamente equivalente a uma instrução TRUNCATE TABLE - exceto que eu não tenho permissão para usar TRUNCATE
Suponho que o motivo dessa restrição tenha a ver com a segurança que precisa ser concedida para truncar diretamente uma tabela e o fato de permitir truncar tabelas diferentes daquela com a qual você está preocupado.
Supondo que seja esse o caso, estou pensando se ter um procedimento armazenado criado que use TRUNCATE TABLE e use "EXECUTE AS" seria considerado uma alternativa viável para fornecer os direitos de segurança necessários para truncar a tabela diretamente.
Felizmente, isso lhe daria a velocidade necessária e, ao mesmo tempo, resolvesse as preocupações de segurança que sua empresa pode ter ao adicionar sua conta à função db_ddladmin.
Outra vantagem de usar um procedimento armazenado dessa maneira é que o próprio procedimento armazenado pode ser bloqueado para que somente contas específicas possam usá-lo.
Se, por algum motivo, essa não for uma solução aceitável e sua necessidade de remover os dados desta tabela for algo que precise ser feito uma vez por dia / hora / etc, solicitei que um trabalho do SQL Agent fosse criado para truncar a tabela em um horário programado todos os dias.
Espero que isto ajude!