Я не знаком с SharpSSH, но edtFTPnet / PRO , коммерческая библиотека .NET, поддерживающая SFTP и FTPS, использует событие BytesTransferred, на которое вы можете подписаться.
Таким образом, вы регулярно получаете уведомление о том, сколько было загружено или загружено, и, если вы захватите размер перед передачей, вы можете легко рассчитать ход загрузки.
Я предполагаю, что у SharpSSH есть похожее событие, на которое вы можете подписаться.