If I were using php I would write a piece of code where you could use variables as the image names and it would be a simple thing to change those in the code; you could also send it an array and it would do all the pages.
Anyway:
(1) Page size depends on DPI so you need to decide the DPI you want to use and calculate the size of your canvas from that.
(2) You can put the images side by side with +append; I think the images would be touching so I would place them on transparent backgrounds ( 5 x 8 ) first and then append them.
(3) Simple black borders use -bordercolor black -border 1
(4) There are different ways to do the captions but I would add some text with -annotate when I was putting the photos on the transparent background in step (2)