Basta dichiarare la i prima della sub
Public Class Form1
    Dim ind As Integer = 0, I As Integer = 0 '<<<<<<<<
    Dim pulsanti(50) As Button, Etichette1(50) As Label, Etichette2(50) As Label
    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        Dim altezza As Integer = 20, larghezza As Integer = 60, posx As Integer, posy As Integer
        I += 1
        pulsanti(I) = New Button
        posx = 20
        posy = 20 + I * (altezza + 5)
        pulsanti(I).Location = New Point(posx, posy)
        pulsanti(I).Size = New Size(larghezza, altezza)
        pulsanti(I).Text = I.ToString
        pulsanti(I).TabIndex = I
        Me.Controls.Add(pulsanti(I))
        AddHandler pulsanti(I).Click, AddressOf BUTTON1Click
        Etichette1(I) = New Label
        Etichette2(I) = New Label
        Etichette1(I).BorderStyle = BorderStyle.FixedSingle
        Etichette2(I).BorderStyle = BorderStyle.FixedSingle
        Etichette1(I).Location = New Point(posx + larghezza + 20, posy)
        Etichette2(I).Location = New Point(posx + larghezza + 100, posy)
        Etichette1(I).Size = New Size(larghezza, altezza)
        Etichette1(I).Text = I.ToString
        Etichette2(I).Size = New Size(larghezza, altezza)
        Etichette2(I).Text = I.ToString
        Me.Controls.Add(Etichette1(I))
        Me.Controls.Add(Etichette2(I))
    End Sub
    Private Sub BUTTON1Click(ByVal sender As Object, ByVal e As System.EventArgs)
        ind = CType(sender, Button).TabIndex
        Etichette1(ind).Text = "Cancellata"
        Etichette2(ind).Text = "Cancellata"
    End Sub
Rnd Class