Visual Studio Professional 2015
Version 14.0.25123.00 Update 2
Microsoft .NET Framework Version 4.7.02046
C#

返信ありがとうございます。
シンプルな状態でエラーが再現したので投稿を編集しました。

拡張コントロール使用したらエラーが出ると書いていましたが、
拡張コントロールなしでエラーが発生することを確認しました。

発生状況・エラー内容
DataGridViewを設置する
DataGridViewCellValidatingの中でDataGridViewEndEditメソッドを呼んでいる(1)
BindingSourceを設置する
DataSetを作成する
DataSetに項目が「項目1」のみのDataTableを作成する
BindingSourceDataSourceは作成したDataSet(2)
DataGridViewDataSourceは作成したBindingSource(3)
Form起動時に30行のデータを表示する(4)
・1つのセルを選択し、値を削除した直後にマウスホイールを動かす
⇒エラー

型 'System.InvalidCastException' のハンドルされていない例外が System.Windows.Forms.dll で発生しました
追加情報:型 'System.Windows.Forms.DataGridViewTextBoxCell' のオブジェクトを型 'System.Windows.Forms.IDataGridViewEditingCell' にキャストできません。

ソース

(2)
this.bindingSource1.DataSource = this.dataSet11;

(3)
this.dataGridView1.DataMember = "DataTable1";
this.dataGridView1.DataSource = this.bindingSource1;

public Form1()
{
    InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{
    // (4)
    for(var i=0; i<30; i++)
    {
        var dr = dataSet11.DataTable1.NewDataTable1Row();
        dr.項目1 = string.Format("{0}", i);
        dataSet11.DataTable1.AddDataTable1Row(dr);
    }
}

private void dataGridView1_CellValidating(object sender, DataGridViewCellValidatingEventArgs e)
{
    // (1)
    (sender as DataGridView).EndEdit();
}

マウスホイール時の処理中にエラーの原因があるのだろうと思い
以下のような対応をすると、エラーが出なくなりました。
が、原因を知った上で正しい対応をしたいです。
以上、よろしくお願いします

☆☆☆ エラーが出ない方法 ☆☆☆

public Form1()
{
    InitializeComponent();
    // MouseWheelイベント処理を作成する
    this.dataGridView1.MouseWheel += dataGridView1_MouseWheel;
}
// マウスホイールイベント
private void dataGridView1_MouseWheel(object sender, MouseEventArgs e)
{
    dataGridView1.CommitEdit(DataGridViewDataErrorContexts.Commit);
}

補足。色々していて、同じキャストエラーが出たソース

public Form1()
{
    InitializeComponent();
    // MouseWheelイベント処理を作成する
    this.dataGridView1.MouseWheel += dataGridView1_MouseWheel;
}
// マウスホイールイベント
private void dataGridView1_MouseWheel(object sender, MouseEventArgs e)
{
    dataGridView1.FirstDisplayedScrollingRowIndex = 3; // ここでエラーが出る
}