Here is my research from the day.
On iOS, there is a thing called a UIScrollView. Setting bounces to 0 makes the scrolling not bounce.
Lion is different. It uses an NSScrollView. (I just did the research) In it is a property called "Elasticity" which determines this: Allow content to be scrolled past its bounds on this axis in an elastic fashion. Things that scroll generally sit within an NSScrollView on the screen. It turns out the NSScrollElasticity is responsable for that. It's defined in NSScrollView.h.
#if MAC_OS_X_VERSION_10_7 <= MAC_OS_X_VERSION_MAX_ALLOWED
enum {
NSScrollElasticityAutomatic = 0, // automatically determine whether to allow elasticity on this axis
NSScrollElasticityNone = 1, // disallow scrolling beyond document bounds on this axis
NSScrollElasticityAllowed = 2, // allow content to be scrolled past its bounds on this axis in an elastic fashion
};
If you open this folder, you can see the file on your hard drive.
/System/Library/Frameworks/Appkit.framework/Versions/C/Headers/NSScrollView.h
Dunno if modifying that file would help anything, but in any case, I would love for a preference file (pList) to automatically set all NSScrollViews for an app to use NSScrollView.NSScrollElasticity = NSScrollElasticityNone
I think that would work, but I don't yet know how to do it and do it for all apps.