For the security rights you have to assign
Assign group A with only read permission [1,0,0,0]
Assign group B with all permissions [1,1,1,1]
This permissions are written in ir.model.access.csv file.
For second requirement you have create record rule for group B with the condition for how many records should be visible to particular group.
ex;
<record id="group_account_invoice" model="res.groups">
<field name="name">Billing</field>
<field name="category_id" ref="base.module_category_accounting_and_finance"/>
<field name="users" eval="[(4, ref('base.user_root'))]"/>
<field name="implied_ids" eval="[(4, ref('base.group_user'))]"/>
</record>
For reference see this doc: \https://www.odoo.com/documentation/9.0/reference/security.html