Hope my answer helps you. I am still kind of a beginner. Other professionals, feel free to correct my answer.
Here's what I think. There is no exact definition on number of times you should use a keyword. But if you look at the language, lot of times you can tell it is keyword stuffing. Think about it this way. With semantic search, knowledge graph, contextual meanings, schema markups, Search engines have become really smart to know what content relates to what. By over using the keyword, you are actually failing to provide meaning to your content. There are other details that go with it, such as what do people usually click on when they search for "office space in NY" etc, what do other people link to etc.
The language should be conversational. Using the word office space multiple times is actually taking away the opportunity to mention other things. It could be something like square feet details, paint colors, lease time etc.
Google has clearly said that Google is for users, not webmasters, or websites. Why do you think they made the whole meta keywords irrelevant?
I am probably trying to confirm your doubt that yes you are most likely keyword stuffing. Also, you are making it more obvious by making the texts bold. Google would more likely find something else that provides more value.
It is definitely able to read the alt tags, as you know, and other tags. Alt tags is usually for crawlers, and other screen reader software to decipher what the image is about. I would probably stick to alt texts not more than a sentence.
It is also able to read href's, and the anchor text it contains. Nobody exactly knows how exactly Google functions, but from experience, I want to say, href is definitely a part of their ranking algorithm. The URL structure matters too. For example, www.example.com/ny-office-space.htm will make more sense then a randomly generated url that is something like, www.example.com/123456-space.htm
I would probably try to think differently about content. Having a diverse language is probably more beneficial, as far as it is relevant, and it is even more beneficial if you go above and beyond. For example if your topic focus is "apples", it is good to talk about apples, but it would be better if you talk about history of apples, different kinds of apples etc.
I would think about having a diverse language in terms of how it would benefit users, or people who search on the web. I would probably not think about having a diverse language just because you can rank. Obviously that is the goal, but Having that thought process might actually hinder your ability to provide good valuable content. If your content is good, Google will definitely rank. Not sure if everyone will agree to this.
Also, I would probably do something like how hard it is to rank for "Office space", and that in NY. sometimes also because of high competition, you might need to up your game even more. Moz, has a "Keyword difficulty tool" which can help you determine that.
You can also in your webmaster tools see how Googlbot reads, or fetches your content for the home page. Lot of times, things could be inadvertently be blocked in robots.txt. For example if you are blocking the whole images folder, and your CSS, javascripts etc, are in the same folder, Google will not be able to read your content the way a normal user sees your content. Making google read your content as close to as a user does, will probably help you more!
The question probably needs more detailed answers. All other professionals can feel free to add/correct. I personally feel that your page is not spammy, but it is, if not more, slightly keyword stuffed.
Hope I helped you clear some of your concerns. Good luck with everything!