How to create a pandas dataframe where the datatype of a column will be a dictionary?
No, this isn't possible.
Pandas dtypes(*) are closely related to NumPy dtypes. There are some differences and additions, e.g. for datetime and category, but in the general the rule holds. Often these additional dtypes are wrappers around NumPy dtypes. The key here is series with these specifically defined dtypes are held in contiguous memory blocks. They can manipulated with vectorised computations.
A series which cannot be held in the fashion described above gets labelled with dtype object. This is nothing more than a sequence of pointers to arbitrary Python types. You should not consider this as an "array of dictionaries" in any vectorised sense. You can compare such a series to a list. You would never say that a list has "dtype dict" just because it contains dictionaries. Similarly, the fact that an object series only contains dictionaries doesn't make it a series of dtype dict.
(*) Notice I use "dtype" instead of "type". This is intentional. "dtype" has a specific and important meaning in relation to Pandas / NumPy, as the rest of my answer should demonstrate.
Is there any way to create a pandas dataframe consisting of two columns. The first columns will of datatype int and the second one will be of dictionary type. Then insert data into the dataframe iteratively.