This does not sound like a good idea, except maybe as a joke program. It would be absurdly slow, and would become classified as malicious, as well as useless. However, there is at least some educational value in this.
It should be possible as long as you are running as admin. Note that even admin cannot perform this action on certain System processes.
First, you will need to acquire SeDebugPrivilege. See this example.
Then, you need to enumerate all processes. See this example: http://msdn.microsoft.com/en-us/library/windows/desktop/ms682623(v=vs.85).aspx
Then, use Open Process on every PID, using PROCESS_ALL_ACCESS. If you get ERROR_ACCESS_DENIED, you probably didn't acquire SeDebugPrivilege correctly.
Use ReadProcessMemory to read the process's memory and store it in a buffer. Some processes will have a massive amount of memory and you will probably need to break it into chunks. You will also need to be robust in your error handling.
Then, scan the buffer for your desired string, and do something if you find it.
You would probably repeat all of the above every 10 seconds or so.
Note: From C#, you will need to p-invoke for these API's. C# is not the best language for this type of nonsense, but it's possible... I recommend native code, however.