This is VERY hard to do correctly.
The “standard” way is to use absolute positioning.
The real problem (and it is a problem and should NOT be ignored), is that using standard CSS to try to accomplish this is not responsive – the text gets all screwed up on smaller screens and looks awful.
The best solution in our experience is to use a photo editor and place the text over the images. This doesn’t work well if you have constant text with changing images.
But, this is not really theme related, but is an HTML/CSS/JavaScript issue. Weaver allows you to have “raw” pages if you need a bunch of specialized HTML, but that is the extent of theme help for this sort of styling issue.