If you're not familiar with Python programming, but know how to use Excel, you can create a spreadsheet that has the polygon corners in WKT format, save the spreadsheet as a .csv file, the open in QGIS. Using WKT format in a csv file is a handy trick I've picked up from other answers here. It allows you to convert all sorts of data into something QGIS can handle without needing to know anything beyond basic Excel functionality.
Let's say you want 4 rows, 5 columns of rectangles, .25 degrees tall, with .1 degrees between rows. Cols are .3 degrees wide, with .05 degrees between. The origin of the grid is at 10° latitude, -106° longitude Create a spreadsheet with the following first two rows:
The last column should have WKT in the header cell, and creates the WKT and looks like this (very ugly)
=CONCATENATE("polygon((", F2," ", D2, ", ", F2," ", E2, ",", G2," ", E2," ,", G2, " ", D2,",", F2, " ", D2, "))")
Since we want 20 polygons, fill col A with 1 through 20 and copy columns B through H alongside those entries.
Save this spreadsheet as a .csv file.
Now open QGIS and select Layer->Add Delimited Text Layer and browse to the csv file you just created. Set Geometry Definition to WKT, Geometry Type = Detect, Geometry field to WKT (or whatever you have in cell H1).
Then click OK
To generalize, replace "5" in the various formulas with however many columns you want.
Replace ".25" with the row height in appropriate units, "-0.3) with col width, "0.1" with inter-row spacing, "-0.05" with inter-column spacing, "10" with Y (latitude) origin, "-106" with X (longitude) origin.
If you're not working in degrees, you will have to set the CRS for your new layer to match the CRS you are using. Depending on your preferences, you may be prompted for the CRS when you click OK to create the layer.