(I've also tried to attach this response as a document with screenshots.)
Assuming that each double-sided data entry form is populated using one row of data, here's one technique that should work. (Prior to printing, you’ll duplicate your data row(s) and use groups to force a page break.)
1. In the DataWindow painter, create a group defined by the expression “getrow()”. You'll first have to create the group using a column (any column), and then double-click the column name to edit. Change the group definition to the expression “getrow()” (without the quotes)
2. In the group Properties panel, click the checkbox “New Page on Group Break”
3. In the detail band, place the page one image in a picture control named, say, p_1, and place all of the related column controls over the image in their respective places.
4. Select p_1 and all of its associated column objects and set the visible property to the expression “mod(getRow(), 2)” (without the quotes)
5. Place the page two image in a picture control (named, say, p_2) next to p_1. (It’s easier to lay the pages out side by side initially). Lay out the columns associated with p_2 on top of p_2.
6. Select p_2 and all of p_2’s associated columns and set the visible property to the expression “1 – mod(getrow(), 2)”
7. Move p_2 and all of p_2’s associated columns on top of p_1. In the DataWindow painter, everything may look messy since both pages of objects are on top of each other, but everything should look fine at runtime.
8. At runtime duplicate each row of data before printing, either by modifying the SQL to return duplicate consecutive rows, or by writing script on the client side following the retrieve (such as RowsCopy()). Perform a GroupCalc() prior to printing.