Agrega un control de usuario en tu proyecto

Luego diseñar tu Paginador, quedaría algo asi:

Clase:

Public Class PaginacionData

    Public Property gBackColor As Color
        Get
            Return panelPrimario.BackColor
        End Get
        Set(value As Color)
            panelPrimario.BackColor = value
        End Set
    End Property


    Private dtTotalDatos = New DataTable
    Private total As Integer = 0
    Public paginaActual As Integer = 0
    Private maximoPaginas As Integer = 0
    Public itemPorPaginas As Integer

    Public dataGridView As DataGridView
    Public Sub cargarDatos(dt As DataTable, dgv As DataGridView)

        dtTotalDatos = dt
        total = dt.Rows.Count
        maximoPaginas = Math.Ceiling(total / itemPorPaginas)

        lblTotalPaginas.Text = maximoPaginas
        dgv.DataSource = Split(dtTotalDatos)
        habilitarBotones()

    End Sub

    Private Function Split(dt As DataTable) As DataTable
        Try
            lblPaginaActual.Text = (paginaActual + 1)
            habilitarBotones()
            Return dt.Select.Skip(itemPorPaginas * paginaActual).Take(itemPorPaginas).CopyToDataTable()

        Catch ex As Exception
            Return Nothing
            MsgBox(ex.Message)
        End Try
    End Function

    Public Sub botonSiguiente(dgv As DataGridView)
        paginaActual = paginaActual + 1
        dgv.DataSource = Split(dtTotalDatos)
    End Sub

    Public Sub botonAnterior(dgv As DataGridView)
        paginaActual = paginaActual - 1
        dgv.DataSource = Split(dtTotalDatos)
    End Sub


    Public Sub habilitarBotones()
        If paginaActual = 0 Then
            btnAnterior.Enabled = False
        Else
            btnAnterior.Enabled = True
        End If

        If paginaActual = (maximoPaginas - 1) Then
            btnSiguiente.Enabled = False
        Else
            btnSiguiente.Enabled = True
        End If
    End Sub

    Private Sub btnSiguiente_Click(sender As Object, e As EventArgs) Handles btnSiguiente.Click
        botonSiguiente(dataGridView)
    End Sub

    Private Sub btnAnterior_Click(sender As Object, e As EventArgs) Handles btnAnterior.Click
        botonAnterior(dataGridView)
    End Sub

    Private Sub btnPrimero_Click(sender As Object, e As EventArgs) Handles btnPrimero.Click
        paginaActual = 0
        dataGridView.DataSource = Split(dtTotalDatos)
    End Sub

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        paginaActual = maximoPaginas - 1
        dataGridView.DataSource = Split(dtTotalDatos)
    End Sub

End Class

Procedemos a recompilar nuestro proyecto y ya debe aparecernos nuestro control en el cuadro de herramientas

arrastramos nuestro control hasta el formulario

Hacemos doble clic en el control y agregar código en evento Load del Control

Public Sub cargarPaginadorr(dg As DataGridView,
                                paginacion As PaginacionData)
        Try
            paginacion.dataGridView = dg
            paginacion.itemPorPaginas = 10
        Catch ex As Exception
            sistemaError(ex.Message)
        End Try
    End Sub 
Private Sub paginacion_Load(sender As Object, e As EventArgs) Handles paginacion.Load
        cargarPaginadorr(dgListado, paginacion)
End Sub

tambien creamos el combobox para filtrar los registros ya se en 10, 50, 100 …

Por ultimo agregamos el siguiente código en eventoelectedIndexChanged del ComboBox

 Private Sub cboPaginar_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cboPaginar.SelectedIndexChanged
        paginacion.itemPorPaginas = cboPaginar.SelectedItem
        paginacion.paginaActual = 0
        llenarGrid(False)

        limpiarAll()
    End Sub

El Resultado seria esto

Puedes descargar el Proyecto en:

https://github.com/irvinpanta/Paginador