The simplest solution to that is to define the collate_fn like this:
def collate_fn(batch):
    return tuple(zip(*batch))

And this is the for loop:
for image_batch, bbox_batch in dataloader: 
    ...

Then, inside the loop you can stack the images before passing them to the model, etc.
If you need some additional functionality, you can even define your own object for handling batches (in the docs there is an example how to do this).