The shocking incident occurred at about 9 a.m. at the Chase Bank at 244 East 86th Street.
A witness told FOX 5 News' Linda Schmidt that the man was riding a scooter and yelling into a cell phone about money as he approached the bank.
The man then went into the vestibule but was not allowed further into the bank by the security guard because it had not yet opened to customers. When he was allowed inside, he approached a teller and started yelling.
A manager asked the man to leave. That's when he stabbed the security officer in the neck, said police.
The officer was rushed to Weill Cornell Hospital where he was in critical condition, but has improved to stable and is expected to survive.
On Saturday, police announced they had arrested 34-year-old Jorge Santiago in connection with the stabbing.
Video from the scene showed blood splattered on the door of the bank and along the sidewalk. Crime scene tape closed off the entrance as police remained on the scene hours later.