If I understand you correctly, what you want is actually quite advanced. You want to be able to manually define headers in a table, but if a non-header ends up in the top of a column, you want InDesign to automatically insert a duplicate of the last header. Am I right?
As far as I know, there isn't a built-in function to help you with this. This isn't how table headers work. They are always in the beginning of a column, frame or page. To automate this, you would have to write a script.
I'll show you how I would do it. I wouldn't use tables for something like this, but style it all only using Paragraph Styles. So much easier to edit, so perhaps adding the repeated headers manually won't be too much work.
All you really need is two Paragraph Styles (one for the city name and one for the contact info) and an Object Style for the icons/portraits (or whatever those black squares are).
Icon Object Style: Has Text Wrap on the right side. Perhaps it has its Size defined by the styling and additional styling.
City Paragraph Style: Aligned to center. The background color comes from a Paragraph Rule. Has Keep Options > Keep with Next set to 1 lines to make sure it doesn't end up in the bottom of a column.
Info Paragraph Style: Has an icon pasted in as an Anchored Object in the beginning of each paragraph. Has Drop Caps set to 2 lines and 1 character to make the icon span over two lines. Has Keep Options > Keep Lines Together > All Lines in Paragraph enabled to make sure the address and telephone number always stick together.
With this set up, I would simply style all the text and then go through each column and add the previous city name when needed.
Next time, if there are many edits, I would perhaps delete the extra city names, make the edits and add the extra city names again. A bit cumbersome perhaps, but that really depends on how many pages of this you have.