То, что вы делаете, - это итерация цикла for 100 раз и загрузка его столько раз. То, что вам нужно сделать, это создать индикатор выполнения, установив для minimun значение 0, а для maximun значение 100. Затем вам нужно определить функцию обратного вызова, которая обновляет ваш прогресс при каждом вызове (в соответствии с документацией, это выполняется с помощью предоставленной функции)
Для краткости необходимо добавить следующее (скопировано из документации, которую вы связали)
и ваш метод должен выглядеть так
//Download files from FTP, return true or false if succed
public static void DownloadFileFromFTP(string ip, string RemoteFilePath, string LocalFilePath, string username, string password)
{
ProgressBar progressBar = new ProgressBar();
Progress<double> progress = new Progress<double>(x => {
if (x > 0)
{
progressBar.Report((double) x / 100);
}
});
FtpClient client = new FtpClient(ip);
client.Credentials = new NetworkCredential(username, password);
client.Connect();
progressBar = new ProgressBar();
client.DownloadFile(LocalFilePath, RemoteFilePath, FtpLocalExists.Overwrite, FluentFTP.FtpVerify.Retry, progress);
progressBar.Dispose();
}