C# DataRow["haswhatnots"] = hasWhatnots への値の代入は非常に遅いです。hasWhatnots はブール値です。
この行のプロファイリングを行ったところ、560000 ヒットで実行時間は 82 秒になりました。もちろん、プロファイラーはパフォーマンスに何らかの影響を与えますが、それでもパフォーマンスは非常に遅いです!
問題に関するヒント。DataRow は、DataGridView.Datasource にバインドされている BindingSource にバインドされている DataTable の一部です。