Você precisa usar o seguinte comando no início do seu procedimento armazenado:
SET NOCOUNT OFF
Neste caso, o servidor SQL enviará mensagens de texto ("X linhas afetadas") para o cliente em tempo real após cada INSERT/UPDATE. Portanto, tudo o que você precisa é ler essas mensagens em seu software.
Aqui está minha resposta como fazer isso em Delphi para o comando BACKUP MS SQL. Desculpe, não tenho conhecimento suficiente em C#, mas acho que você pode fazer isso em C# com
SqlCommand
classe.