I haven't used Angular 2 nor Google Maps with it yet, but I'll try to give you some light into it:
For the marker you may use MarkerWithLabel, it will override the original marker with an element of your choice and the numbers can be defined based on the map markers' length.
About the infowindow style, I'm not sure you can do it, all I can help you with is substitute the original marker click to trigger your own custom infowindow, which would be just a regular <div></div>, something like this:
var mapOptions = {
center: new google.maps.LatLng(-23.959942, -46.322279),
zoom: 12,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById('map_canvas'), mapOptions);
var marker = new google.maps.Marker({
position: new google.maps.LatLng(-23.959942, -46.322279),
map: map
});
new google.maps.event.addListener(marker, 'click', function(marker) {
// Toggle show/hide div
});
I could not test it, hope it helps (: