Managing tables in database
If I understand your question well, and you want to build a database by making use of a relational database management system (RDBMS), you should create a table for every entity that you have determined as relevant in your scenario, e.g., one table for Company, one for Person (who are Employees of a given Company), one for Project, and one for Task. 

Once you have defined your database structure representing entities by means of tables, you will face the need to store a given ocurrence of an entity, then you should use the corresponding table for doing so. For instance, if you want to store three occurrences of the entity called Company, say “Database Modeling Corporation”, “Application Programming Enterprises” and “User Experience Industries”, then you should INSERT (using DML in SQL) each one of them in the table called Company. 

So, no, I would not suggest you creating a new table for storing every particular ocurrence of an entity, since this approach would be very unpractical and inflexible. In this sense, it is best to use the tables that you have already defined for each respective entity.

Every stored row (an occurence of an entity) must be uniquely identified in your tables so that, among other things, you prevent redundancy, therefore you need to use a PRIMARY KEY in this regard.

You also need to set the relationships that exist between the different entities/tables that you are working with, and the concept of FOREIGN KEY is a very powerful relational tool pertaining to this aspect. For example, a specific Task may belong to a particular Project, so yo should add a FOREIGN KEY to the table called Task, and such FOREIGN KEY should reference the PRIMARY KEY that has being set for the table called Project.