Use graphical trick. Have invisible solid sprites stay still for solid check. Have a tiled background for your infinite wall rendering.
In every tick, check if your tiled background exceeds its looping size. If so, move it back. For example, if your tile is 128 x 128, and the size of the tile is 128 x 800, check if y of the tile > 128. If so, move y back by 128 - the height of your tile, in other word. This will give the player the impression that the tile is moving.
Of course, the player will have to be push down with the same speed as the wall that is pulling down to have the same impression.
Does this answer your question?