All depends on your level of ambition and your goals. If you want to top one of the existing browsers out there, probably best to give up now... not going to happen. But if you just want to take on a project you can work on incrementally and learn some things along the way, this would probably be a good project for that. However, if your skills are not at least intermediate with C# and the .NET Framework and Windows Forms or WPF, you will definitely want to work on those before tackling something like this.
Regarding your question of whether it is possible, of course it is. That you asked this question shows that you don't know nearly enough to take on a project like this. Maybe someday, but not today. Good luck.
P.S. Perhaps a better place to start would be to look at an existing open source browser and look what they've done. Perhaps modify their code to suit your needs.
1. you can use a timer to get an event at some rather low frequency (well below 1 kHz); it wouldn't be very reliable, there would be some jitter (you might want to read my timers article).
2. you can choose a realtime thread priority, and cause a busy loop to monopolize one CPU core to read a parallel pin at high frequency (hundreds of kHz); the exact frequency would depend on the number of instructions in your loop and your CPU frequency.
3. you can provide an external clock, then choose a realtime thread priority, and cause a busy loop to monopolize one CPU core to read a parallel pin at high frequency (hundreds of kHz). By waiting on the external clock, your code would be independent of the exact instructions and your CPU frequency.
Other ways would include writing a specialized driver (not in C# though).
None of the above is likely to be acceptable as far as behavior and results quality go. If you want to create say an oscilloscope, you need more external hardware, including some memory, so the communication doesn't have to be real-time at all.
Well, I have a lot of questions regarding this topic, so i'll show you some of my doubts:
I'm currently developing a C# windows forms application that communicates with a access database file to store all my data. Now that my relational database is getting bigger, i'm wondering if I should make table relations inside the access file or in C#. Sometimes I have to make changes to more than one table at a time and I don´t know how and who should do these kind of transactions (access/c#). I need to use DataSets, Datareaders, Databinding, etc to do that, right? How these communication should work, I mean, best practice for this!?