This is a great question and while I'm not 100% sure of the context you're working with, I thought a few solutions could be possible. I didn't see your other answers at the time so I'll give some background to my thought process as I go!
My first focus was essentially, "I want to preview something before I decide if it should be part of the group I will make an action on or not."
For the most basic solution, I thought why not use the table? The table will give several indicators that might help me with making my decision already. In that case there wouldn't be tabs for the table and detail view, and I probably use column sort/filtering to help me cut through the thousands of results faster.
But I was guessing you weren't using the table because there might be some complicated info that didn't appear on the table that you still need to see, so that brought me to the next one, which is something that allows me to see some information one at a time, yet doesn't conflict with the checkbox behaviour. So here my added focus was, "How to trigger a preview without conflicting with the checkbox". Presumably, the user could interact with the different rows and expand, collapse, expand, etc. This area could handle larger or more complex content (depending on responsive / screen size expectations) while the active area of the checkbox would restricted to the left side of the row so that there's clear delineation of actions.
The above were my first thoughts because a data table could also allow the basic sort/filtering that will help me move through hundreds / thousands of options, so that's why I wanted to explore those. If I'm sticking with the original structure as you shared in your question, then the main thing I would focus on is to make sure that 1) the number of items selected is very clear before the action is applied, and 2) the possibility of accidentally mixing checkbox and preview with each other is reduced as much as possible. To address this I group the number of selected items together visually with the actions, so it's reinforced strongly by proximity (maybe even directly on the label, ie: "Export 317 items") and dedicate a space specifically for previewing. So the checkbox and preview triggers are far apart and visually distinct. (Note that the preview icon here was just chosen quickly, maybe some user testing could help here with deciding if a text label, radio button, other icon, or some combination could be a better choice.)
In summary the design principles that were guiding my thoughts were most of all to avoid having an interaction conflict, followed by letting the users have the ability to filter/sort if I could (since there would be hundreds/thousands to go through) and where possible, to show all the relevant content right in the table.
Thanks for reading! My colleague and I also chatted about this in a short video touching on these points here in case you were curious. I hope it helps spark any more thoughts! Take care and have a lovely day :)