How do i know a table size and row counts for each month, for the past six months?
Unless you are tracking tables, table size can not be known. To get current size:   

sp_spaceused 'TableName'


To get row count:  

Select count(*) from 'TableName'


To get row count with a timestamp field:   

    Select
          DATEPART(YEAR, 'timestamp_field') AS 'Year',
          DATEPART(MONTH, 'timestamp_field') AS 'Month',
          DATEPART(DAY, 'timestamp_field') AS 'Day',
          COUNT(*) AS Check

    from
         'TableName'
    group by
         DATEPART(DAY, 'timestamp_field'),
          DATEPART(MONTH, 'timestamp_field'),
          DATEPART(YEAR, 'timestamp_field')  
ORDER BY  'Year',  
          'Month',  
          'Day'


Database growth:  

SELECT
[database_name] AS DB,
DATEPART(day,[backup_start_date]) AS Day,
DATEPART(month,[backup_start_date]) AS Month,
DATEPART(year,[backup_start_date]) AS Year,
AVG([backup_size]/1024/1024) AS "Backup Size MB",
AVG([compressed_backup_size]/1024/1024) AS "Compressed Backup Size MB",
AVG([backup_size]/[compressed_backup_size]) AS "Compression Ratio"
FROM msdb.dbo.backupset
WHERE [database_name] = N'AdventureWorks'
AND [type] = 'D'
GROUP BY [database_name],DATEPART(m,[backup_start_date]),DATEPART(d,[backup_start_date]),DATEPART(y,[backup_start_date]),backup_start_date;  


for database size details. Check this link
Create table size tracking report