We can use drivers to control a property from another property. Note that there are some limits, for example, an objects visibility doesn't seem to trigger an update of drivers that use it.
- Lets start with three objects, a cube a monkey and a torus.
- Add a custom property to the cube (see below), click edit and rename it
select_control
then set the value to 1, as we enter a whole number it will prevent decimal numbers being entered.
- In the outliner, right click on the selectability of Suzanne and choose Add Driver->Single From Target. This will give you an eyedropper cursor, click on the cubes custom property we just created. Note that the value is now highlighted in purple. This applies to 2.78, previous versions you choose Add Driver and then manually edit a driver expression.
- Repeat for the torus
Now as you alter the value of the cubes property, the selectability of the monkey and the torus also change.

Drivers can be any python expression and can be edited in the graph editor in driver mode.
A custom properties panel can be found in several tabs of the properties editor, for this situation a property attached to an object makes sense, a scene property could also work. Adding a custom property is as simple as clicking the add button, it can be useful to also edit the property to give it a more meaningful name and adjust the limits if you want values larger than 1.0.
