Create a polygon layer with 400x400 km squares covering the extent you want to show on the map.
Be aware that depending on the CRS you use, distances can be heavily distorted as it is the case for
EPSG:3857 which I used in the screenshot below for demonstration purpose and convenience only. Be sure to get that right in your workflow - see at the bottom of this answer.
In the print layout, create an atlas with this polygon layer as coverage layer.
Select the map, go to
Item Properties, check the box
Controlled by Atlas and set
Margin around feature to 0%.
Postion and Size and for
Height set 400 mm each.
1000000 (400 km : 40 cm).
Finally, you can right-click on the remaining white space (my page was set to size A2), select
Page Properties and set the Width and Height to 400 mm x 400 mm as well. So the page size has the same size as the image.
Red frame = 400 km x 400 km polygon; here I set Width and Height to 410 so that the red frame can be seen:
Using a CRS that fits your needs is a bit tricky in your case as you have a larger area (at least from Moscow to Omsk) and I doubt that there is one single good choice of CRS for all your cities. Normally, when dealing with distances, local UTM-zones are a good choice. But you need 400 km x 400 km squares and this is a bit large for the extent of UTM zones. So maybe there are some regional CRS availble for Russia or you use a custom projection.
Another easy option would be using
EPSG:3576 - but with this, creating squares around Moscow, Kazan and Omsk, there are still differences of up to 16 km between Cartesian and Ellipsoidal distances (ellipsoidal distances are more or less real-world distances, with a few simplifications). As well, if you reproject these squares in
EPSG:3857, their shapes look as on the next image. So be sure to get an understanding of how using different CRS/projections affects your results and what exactly you want to achieve.
400 km x 400 km squares in
EPSG:3576, reprojected to