Esta pergunta é velha pra caramba, só vou responder para sair da lista de "Não respondidas"....
Mas enfim, o evento OnPrepareReport é um bom lugar sim. Se vc está montando o relatório "por macro" (ao invés de "por tabela") já vai dar para pegar o conteúdo do CSDContainer e fazer SaveToFileSeparator, que já grava o CSV bem fácil.