Storing the location of the checkboxes as you loop through them will help place the new one.

Sub test()
    Dim oneShape As Shape
    Dim maxTop As Single
    Dim Exists As Boolean
    Dim sh As Worksheet
    
    For Each sh In ThisWorkbook.Worksheets
        maxTop = 0: Exists = False
        For Each oneShape In sh.Shapes
            If oneShape.Type = msoFormControl Then
                If oneShape.FormControlType = xlCheckBox Then
                    maxTop = WorksheetFunction.Max(maxTop, oneShape.Top + oneShape.Height)
                    If oneShape.Name = oneShape.Parent.Name Then
                        Exists = True
                    End If
                End If
            End If
        Next oneShape
        
        If Exists Then
            Rem all good
        Else
            With sh.CheckBoxes.Add(sh.Range("H1").Left, maxTop, 100, 20)
                    .Name = sh.Name
                    .Caption = sh.Name
            End With
        End If
    Next sh
End Sub