The NSA's current spying program would have thwarted Timothy McVeigh's terrorist plot before he committed it. Today's security programs have been instrumental in preventing foreign terrorist organizations from conducting additional attacks. These programs are important for national security. Sometimes it is necessary for people to relinquish some civil rights in order to stay safe.
The current electronic spying program done by the NSA would not have caught Timothy McVeigh before he committed his terrorist act because Timothy McVeigh did not use technology like most Americans do today. McVeigh did not use technology then, and would not use it today. He lived like a hermit in the woods without electricity. He was completely separated from society. NSA would not have been able to figure out what he was planning.
There's no real way to know for sure if the government spying program would have caught Timothy McVeigh. However, I feel like it probably would not have. In my opinion, there were already warning signs with McVeigh due to his believing in a local, private militia. He wrote letters to newspapers that sounded fringe, attempted to encourage a person's murder, and took the unpopular side in the Waco incident. There were signs that the government did not pick up on back then; why would the NSA now be more capable of doing so?
The NSA's current electronic spying program would not have caught Timothy McVeigh before he committed his terrorist act. Timothy McVeigh was the terrorist who caused the Oklahoma City bombings. The current spying program that the NSA uses is to intercept al Qaeda communications overseas where at least one party is not a U.S. person.
The current NSA snooping, like so many other things that are ostensibly for the protection of the people, only serve to hurt those playing by the rules. Just like DRM in video games, or the TSA, criminals continue to act while normal people pay the price. McVeigh wouldn't have been caught - just like the NSA didn't catch the Boston bombers.