エラーになる時とならない時があり、インターネット環境に基づくものだとわかりました。
タイムアウトの設定をしたいのですが、どのように行えばよろしいでしょうか?

static async Task DownloadImage(HttpClient httpClient, string uri, string path)
    {
        /// httpClient.Timeout = TimeSpan.FromMilliseconds(500000);
        using (var res = await httpClient.GetAsync(uri, HttpCompletionOption.ResponseHeadersRead))
        using (var fileStream = File.Create(path))
        using (var httpStream = await res.Content.ReadAsStreamAsync())
            await httpStream.CopyToAsync(fileStream);
    }

    static async Task DownloadImage(string[] uris, string path)
    {
        using (var httpClient = new HttpClient())
            await Task.WhenAll(uris.Select((uri, i) => DownloadImage(httpClient, uri, string.Format("{0}{1}.jpg", path, i + 1))));
    }