I’m pretty sure that with some Javascript you can use the datagrid.
The datagrid comes with an array Datagrid - selected rows, which is still there even if you disable ‘Allow Selection’, however, you can always create your own array if needed.
For the custom checkbox add to the On Click workflow a JavaScript Array push (JavaScript Array push() Method) or some other javascrpt array method which manipulates the array. In this video Loom | Free Screen & Video Recording Software | Loom
You can see that I added a workflow to a button that adds the first element to the datagrid selected array.
What you would need to do is something kind of like
if (datagrid selected array contains current item){
remove from datagrid selected array (current item)
} else {
datagrid selected array add (current item)
}