できますよ。
例えば
Deny from all
Allow from 10.1.2.3
Allow from 10.1.2.10
と書けば、10.1.2.3と10.1.2.10からアクセスできます。Denyで不許可した後に、Allowで許可します。詳しくは、mod_accessのリファレンスを見てもらえればと思います。色々と例題もありますから、試してみると良いと思います。
リファレンスマニュアル:
http://httpd.apache.org/docs/2.0/ja/mod/mod_access.html
追記:
BASIC認証との組み合わせも可能です。
Deny from all
Allow from 10.1.2.3
Allow from 10.1.2.10
AuthName "for Admin"
AuthType Basic
とか。
アドレスによって変えるためには、RewriteCondやRewriteRuleを使ってルールを書かなければならないと思います。かなり難易度は高いです。
良い例題を見つけたら報告します。
apache2.4からは<SatisfyAll>, <SatisfyOne>ディレクティブが使えるようです。
http://httpd.apache.org/docs/current/ja/howto/auth.html#beyond
試した事はないのですが、これでいくと、
AuthType Basic AuthName "hogehoge" AuthUserFile /path/to/passwords Require ip 192.168.x.a <SatisfyAll> Require ip 192.168.x.b Require valid-user </SatisfyAll>
こんな感じになると思います。