OK, so you essentially have "bare" LEDs for the street lights and will be using plain LEDs for the buildings. Perfect!
So, a MAX7219 module will control up to sixty-four of them wired in a matrix, operating from 5 V and you do not need resistors as the MAX7219 controls the current for you. It will control, each LED individually but the brightness of all (which are switched on at any one time) together.
Sixty-four would probably cover all of your LEDs, but in case it did not, these are chain-able - you can use two, three, four, eight in a row, connected from the same control pins on the Arduino. Actually, if you use significantly fewer LEDs, you do not need all eight columns of the matrix and the LEDs will be a little brighter when you program the chip accordingly.
Here is a diagram of the internal connections of that LED matrix itself, to indicate how you would wire your LEDs to correspond:
Please do not buy an Arduino UNO - they are not suitable for construction projects such as this.
You want a "Nano" which comes with connection pins supplied, but for this, you would instead solder wires directly to the terminals.

Click for eBay supplier.
Here is a MAX7219 matrix module:

Click for eBay supplier.
It comes with an 8 by 8 LED matrix because the intended purpose is to generate patterns, but because you do not want that but rather to use your own matrix of LEDs, you just use the module to implement your own wiring; the MAX7219 is already mounted.
All this part will be powered at 5 V. The Arduino board cannot regulate 12 V to 5 V for you, you either use a regulated 5 V supply such as a "phone charger", or a step-down "buck" regulator (cheaply available on eBay) from your 12-16V supply.
I leave you to the other comments regarding strip lighting, but the controllable LEDs are easy!
