Quel che mi viene in mente è che potresti caricare il file, esclusa la riga da cancellare, e riscriverlo da zero.
In alternativa, con qualche passaggio in più, potresti sovrascrivere a partire dalla riga da cancellare tutto quel che segue la riga stessa.
Tempo fa leggevo che operazioni di scrittura conviene sempre farle generando un nuovo file e solo dopo che il nuovo file è stato registrato con successo provvedere a cancellare l'originale e rinominare il nuovo file con il vecchio nome.
Magari esistono altri sistemi, ma io non li conosco. Anche per questo continuerò a leggere questa conversazione, così magari imparo qualcosa di nuovo.
P.S. Dopo tutto, un file CSV non è altro che un file di testo, per cui si usano le "solite" funzioni standard da stdio.h