To make it one object you can either use a tilemap or use a paster/canvas object.
You can draw the terrain to the canvas or paster object, so you'd have only one object. It doesn't do anything for collisions though.
With a tilemap you just set the tiles with events and you get collisions no problem.
As far as wrapping you'll not want a single object.
With just sprites as you have you could do this:
sprite: x < viewportLeft
--- sprite: set x to self.x + layoutWidth
You could also reduce the number of objects to one's on screen and just update them from the array as the player moves.