Just to put my advice in perspective: I'm an Indian who will possibly be attending (a pretty good) public university this year. I'm the typical HN/reddit geek: started programming when I was 9, know around 9 programming languages, quite some bit of theory, etc. etc. In school in India, I was bored all the time, got mediocre grades, and had donkeys for teachers. Here's what I feel you should do:
1. Challenge yourself
So, you've got to choose from these kinds of activities:
A: Activities that you enjoy doing
B: Activities that *might* impress (say) the college admissions staff
I mostly did stuff exclusive to type A; bad idea. Of course, never do anything that comes only within B. Find what comes under the union of the two.
You're in America: you don't hunt for opportunities, you are flooded with them. Someone on this thread recommended "taking every AP exam available". Sure, do that: it's really important. But that's not ambitious at all: AP exams cover only about 10% of what Indian entrance examinations do, and you get to use "calculators" and "appendices" (more like textbooks). Do something real, like aspire to be an IMO/IOI/IPhO/IChO/ISEF medalist (if you don't know what those are, shame on you).
2. Manage your time
I was absolutely dismal at this. But I've started doing it for a month and it really does wonders: I have stopped procrastinating and started to feel less stressed out. I'd recommend you watch the late Randy Pausch's other lecture (http://www.youtube.com/watch?v=oTugjssqOT0) or read Getting Things Done. Most of HN can give better advice.
3. Skip school (a lot)
It took me a lot of effort to get my parents to allow me to do this. Alas, it was too late then. Usually, teachers do more harm than good. Read the right books instead of attending their classes.